Платформа: IIS 6, ASP.Net 2.0 (.Net 3.5), Server 2003.
Я создаю приложение, которое принимает файлы от пользователя, обрабатывает их и возвращает результат. Файл загружается с помощью HTTP POST в веб-форму ASP.Net. Приложение ожидает несколько больших файлов (сотни МБ).
Я использую SWFUpload для выполнения загрузки с хорошим индикатором выполнения, но это не способствует возникновению проблемы, потому что, когда я обхожу ее, используя стандартную HTML-форму, указывающую на страницу моего получателя загрузки, я получаю точно такую же ошибку. При использовании индикатора выполнения загрузка продолжается до 100%, затем происходит сбой. При стандартной форме поведение кажется таким же.
У меня сейчас проблема с загрузкой файла размером около 150 МБ. Я изменил все настройки, которые смог найти, но все равно не повезло.
Вот краткое изложение того, что я изменил:
В Web.config:
Добавил это в system.web:
<httpRuntime executionTimeout="3600" maxRequestLength="1536000"/>
В machine.config:
Внутри system.web, изменено:
<processModel autoConfig="true" />
до:
<processModel autoConfig="true" responseDeadlockInterval="00:30:00" responseRestartDeadlockInterval="00:30:00" />
и в MetaBase.xml:
Изменено:
AspMaxRequestEntityAllowed="204800"
до:
AspMaxRequestEntityAllowed="200000000"
Когда загрузка не удалась, я получаю ошибку 404 от IIS. Моя веб-форма не начинает обрабатываться или, по крайней мере, не попадает в событие Page_Load. Я выдал исключение в начале этого обработчика, и он вообще не выполняется для больших файлов.
Все отлично работает с небольшими файлами (я тестировал до 5,5 МБ). Я не совсем уверен, какой размер файла является лимитом, но я знаю, что мой лимит должен быть больше 150 МБ, так как это не самый большой файл, который клиент должен будет загрузить.
Может кто-нибудь помочь?