Отправка данных в HttpHandler больше чем ~ 29 МБ дает ошибку 404 - PullRequest
1 голос
/ 23 апреля 2010

Я тестирую 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

Ответы [ 2 ]

3 голосов
/ 23 апреля 2010

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

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

http://www.experts -exchange.com / Программирование / Языки / .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>

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

Означает ли это, что для IIS 6 достаточно установить ? (живой сервер - win2003)

2 голосов
/ 23 апреля 2010

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

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

при условии, что ваш путь обработчика равен YourHandler.aspx.

...