1

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

Я отправляю к проводнику другого обработчика в одном проекте, и я попробовал 2 метода - 1. HttpWebRequest с «POST» 2. WebClient с UploadFile() и UploadData()

я получаю такая же ошибка 404, когда размещенные данные выше 28.6 MB.

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

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

<httpRuntime maxRequestLength="1048576" /> 

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

+1

http://weblogs.asp.net/jgalloway/archive/2008/01/08/large-file-uploads-in-asp-net.aspx –

+0

У меня уже есть способ high - maxRequestLength = "1048576" –

+0

Вы загружаете файл или публикуете страницу? –

ответ

3

Я обнаружил, что проблема связана с 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.6mb. Правильный способ установки в web.config -

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

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

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

+0

Более подробно описаны http://weblogs.asp.net/jeffwids/archive/2009/09/24/from-iis6-maxrequestlength-to-iis7-maxallowedcontentlengthfile-specifying-maximum-file- загрузка-size.aspx –

2

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

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

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