Отправка данных в HttpHandler размером более ~ 29 МБ выдает ошибку 404

StackOverflow https://stackoverflow.com/questions/2696174

Вопрос

Я тестирую HttpHandler, который принимает XML.Это работает нормально, когда публикуется небольшой объем данных, но если я публикую данные размером более приблизительно 29 МБ, я получаю сообщение об ошибке asp.net 404.

Я отправляю сообщение обработчику из другого обработчика в том же проекте, и я попробовал 2 метода - 1.HttpWebRequest с помощью "POST" 2.WebClient с uploadFile() и UploadData()

Я получаю ту же ошибку 404, когда опубликованные данные указаны выше 28.6 МБ.

Я также попытался поставить точку останова прямо в начале принимающего обработчика и выполнить отладку.По нему никогда не бьют.Похоже, что обработчик так и не был вызван.Работает нормально для данных меньшего размера.

У меня уже есть следующая настройка.Что я делаю не так?

<httpRuntime maxRequestLength="1048576" />

Редактировать:Я также пробовал отправлять сообщения в другой обработчик, который не использует отправленные данные, просто для тестирования, но результаты те же.Окружающая среда:Win 7, IIS 7.5, .net 3.5, VS 2008 альтернативный текст http://img401.imageshack.us/img401/4099/errormr.png

Это было полезно?

Решение

Я обнаружил, что проблема связана с IIS 7 и выше.Для этого требуется, чтобы максимальная длина запроса была установлена в другом месте.

Смотрите следующие ссылки -

http://www.experts-exchange.com/Programming/Languages/.NET/ASP.NET/Q_22943810.html

http://msdn.microsoft.com/en-us/library/ms689462%28VS.90%29.aspx

Значение по умолчанию равно 30000000.который составляет 28,6 мбайт.Правильный способ установки в web.config - это -

  <system.webServer>
    <security>
      <requestFiltering>
        <requestLimits maxAllowedContentLength="1073741824"></requestLimits>
      </requestFiltering>
    </security>
  </system.webServer>

Эта конфигурация устранила ошибку, которую я получал.Я хотел бы, чтобы сообщения об ошибках были более наглядными, по крайней мере, на локальных машинах

Означает ли это, что настройки <httpRuntime maxRequestLength="1048576" /> достаточно для IIS 6?(текущий сервер - win2003)

Другие советы

Попробуйте добавить этот раздел на web.config файл:

<location path="YourHandler.aspx">
    <system.web>
        <httpRuntime maxRequestLength="1048576" executionTimeout="3600" />
    </system.web>
</location>

Предполагая, что вы обработчик YourHandler.aspx.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top