Назад | Перейти на главную страницу

Как сообщить IIS7 разрешить POST в текстовый файл (для решения 405)?

Если я хочу разрешить HTTP POST для текстовых файлов *.текст (т.е. я беру пример того, что может быть любым статическим ресурсом, обычно доступным с помощью GET).

Ошибка:

Ошибка сервера

405 - HTTP-глагол, используемый для доступа к этой странице, не разрешен. Страница, которую вы ищете, не может быть отображена, потому что для попытки доступа был использован недопустимый метод (HTTP-команда).

Как я могу этого добиться?

Задний план: Я использую apps.facebook.com, чтобы попасть в мое размещенное приложение facebook, и facebook теперь отправляет HTTP POST через iFrame, на котором размещено мое приложение. Такое поведение в facebook существует некоторое время, но сейчас оно принудительно. В свою очередь, это заставляет меня делать вещи доступными для команды POST.

Быстрый обходной путь, в зависимости от того, насколько ограничен ваш доступ к приложениям, требующим доступа администратора, - это переименование в правильно настроенный тип файла. Вы можете, например, предоставить статический контент в виде файла aspx.

Замените «file.txt» на «file.aspx», и все готово (если aspx разрешено обрабатывать POST, что должно быть по умолчанию).

Я использую IIS7, и мне пришлось перейти в папку, которую я хотел разместить в диспетчере IIS, а затем перейти к «Фильтрация запросов», и вы можете добавить «глаголы», например, отправить, получить ..

Это устранит ошибку 405 ..

Я считаю, что IIS поддерживает POST для большинства типов расширений. Вы используете IIS7 или 7.5? Я только что протестировал файл .txt в IIS7.5, и он отлично справляется с POST.

Я бы проверил ваш applicationHost.config (c: \ windows \ system32 \ inetsrv), поискал раздел и проверил ваш обработчик StaticFile, или если у вас уже есть обработчик для вашего типа расширения. То же самое может быть установлено в вашем файле web.config. Убедитесь, что свойство verbs допускает POST.

У меня была аналогичная проблема. Наше приложение пыталось отправить POST-запросы в статический файл json, размещенный в IIS. Я исправил это, обновив файл web.config:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
    <handlers>
            <add name="JSON" path="*.json" verb="GET,POST" modules="IsapiModule" scriptProcessor="C:\Windows\System32\inetsrv\asp.dll" resourceType="File" requireAccess="None" />
    </handlers>
        <security>
            <requestFiltering>
                <fileExtensions>
                    <add fileExtension=".json" allowed="true" />
                </fileExtensions>
                <verbs>
                    <add verb="POST" allowed="true" />
                </verbs>
            </requestFiltering>
        </security>
</system.webServer>
</configuration>