Как настроить web.config для разрешения запросов любой длины
Я создаю сайт, в котором я хотел бы создать сторону клиентского файла из значения элемента textarea.
У меня есть код для этого, но я получаю эту ошибку
Ошибка HTTP 404.15 - не найден Модуль фильтрации запросов настроен на отказ от запроса, где строка запроса слишком длинная.
Есть ли способ переопределить это, чтобы я мог обрабатывать запросы любого размера?
Если нет, существует ли способ создать клиентскую часть файлов без использования файловой системы/активного объекта x?
спасибо
Ответы
Ответ 1
Добавьте в свой web.config следующее:
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxQueryString="32768"/>
</requestFiltering>
</security>
</system.webServer>
См:
http://www.iis.net/ConfigReference/system.webServer/security/requestFiltering/requestLimits
Обновлено для отражения комментариев.
requestLimits Элемент для запросаFiltering [Схема настроек IIS]
Возможно, вам придется добавить следующее в свой web.config
<httpRuntime maxQueryStringLength="32768" maxUrlLength="65536"/>
Смотрите: httpRuntime Element (Схема настроек ASP.NET)
Конечно, цифры (32768 и 65536) в настройках конфигурации, приведенные выше, являются просто примерами. Вам не нужно использовать эти точные значения.
Ответ 2
В моем случае (Visual Studio 2012/IIS Express/ASP.NET MVC 4 app/.Net Framework 4.5) то, что действительно работало после 30 минут проб и ошибок, устанавливало свойство maxQueryStringLength
в теге <httpRuntime>
:
<httpRuntime targetFramework="4.5" maxQueryStringLength="10240" enable="true" />
maxQueryStringLength
по умолчанию 2048
.
Подробнее об этом здесь:
Расширение диапазона допустимых URL
Я попытался установить его в <system.webServer>
, поскольку @MattVarblow предлагает, но это не сработало... и это потому, что я использую IIS Express ( основанный на IIS 8) на моей машине dev с Windows 8.
Когда я развернул свое приложение в рабочей среде (Windows Server 2008 R2 с IIS 7), IE 10 начал возвращать 404 ошибки в запросах AJAX с длинными строками запросов. Затем я подумал, что проблема связана с строкой запроса и попробовал ответить @MattVarblow. Он просто работал на IIS 7.:)
Ответ 3
Что-то еще, чтобы проверить: если ваш сайт использует MVC, это может произойти, если вы добавили [Авторизовать] в свой контроллер логина. Он не может получить доступ к методу входа, потому что он не авторизовался, поэтому перенаправляет его на метод входа → стрела.
Ответ 4
У меня была аналогичная проблема, пытаясь развернуть веб-приложение ASP для IIS 8. Чтобы исправить это, я сделал, как предложил Мэтт и Лениэль выше. Но также необходимо настроить параметр "Аутентификация" моего сайта, чтобы включить анонимную аутентификацию. И это работало для меня.
Ответ 5
Ошибка HTTP 404.15 - не найден Модуль фильтрации запросов настроен на отказ от запроса, где строка запроса слишком длинная.
Чтобы устранить эту проблему, проверьте исходный код, имеет ли тег Form
свойство method
состояние get/set.
Если это так, свойство method
должно быть удалено.