Как настроить 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 должно быть удалено.