У меня есть красивый небольшой элемент управления загрузкой файлов, который я написал для веб-форм ASP.NET, который использует IFrame и ASP.NET AJAX.
Однако при больших загрузках время ожидания браузера истекает, прежде чем он сможет завершить публикацию формы.
Есть ли способ увеличить это?
Я не особо интересуюсь альтернативными решениями, поэтому не предлагайте менять все, пожалуйста. Он хорошо работает для загрузки <5 мегабайт, я просто хотел бы увеличить его примерно до 8 МБ.
Обновлено: установка тайм-аута в Page_Load ничего не изменила.





В Page_Load установите для Server.ScriptTimeout значение, которое вам подходит. Полагаю, измеряется секундами.
Да, если вы получаете тайм-аут запроса в iframe, тогда вы должны установить Server.ScriptTimeout.
Вам необходимо обновить параметр метабазы в IIS6 и более поздних версиях. Ключ - «AspMaxRequestEntityAllowed» и выражается в байтах. Я настоятельно рекомендую Metabase Explorer внести изменения, хотя пробираться через XML в% systemroot% \ system32 \ inetserv \ metabase.xml можно.
Обозреватель метабазы: http://support.microsoft.com/kb/840671
Хммм, возможно, я лаяю не на то дерево ... вы бы не создавали файлы размером 5 МБ, если бы это еще не было настроено.
Еще один удар: см. Свой web.config:
<system.web>
<httpRuntime maxRequestLength = "10240" executionTimeout = "360"/>
</system.web>
Максимальная длина запроса указывается в килобайтах, а время ожидания выполнения - в секундах.
maxRequestLength фактически выражается в килобайтах. См. msdn.microsoft.com/en-us/library/e1f13641.aspx
Вы правы, иначе упомянутое мной небольшое число не имело бы смысла. Спасибо, отредактировал.
Думаю, может понадобиться настроить MaxRequestLength
Его в Web.config, я думаю, по умолчанию 4 мегабайта.
Следующее позволит файл размером ~ 10 мегабайт:
<httpRuntime maxRequestLength = "10240" />
Проверьте код Велодок XP Edition. Он включает в себя модуль потоковой передачи, возобновляемый обработчик загрузки и элементы управления загрузкой ASP.NET, основанные на расширениях ASP.NET Ajax, и все это с открытым исходным кодом.
Для получения дополнительной информации проверьте также www.memba.com и www.velodoc.com.
Это не напрямую касается вопроса, и это может быть реклама.
Веб-сайт, на который есть ссылка, в настоящее время не используется.
Поместите это в свой web.config
<system.web>
<httpRuntime executionTimeout = "360" maxRequestLength = "100000" />
Это позволяет использовать тайм-аут 360 секунд и загружать 100 000 КБ данных за раз.
Если это не сработает, запустите эту команду на своем сервере IIS. (замените [IISWebsitename])
C:\Windows\System32\inetsrv>appcmd set config "[IISWebsitename]" -section:requestFiltering -requestLimits.maxAllowedContentLength:100000000 -commitpath:apphost
Это позволяет загружать 100000000 байт данных за раз.
Спасибо! Параметр requestFiltering помог мне. В IIS 7 я внес изменения с помощью следующей команды: Фильтрация запросов | Правила | Изменить настройки функции | Максимально допустимая длина содержимого.
Я решил это с помощью PHP с HTML:
Откройте файл Web.config и чуть ниже тега <system.web> добавьте следующий тег:
<httpRuntime
executionTimeout = "90"
maxRequestLength = "4096"
useFullyQualifiedRedirectUrl = "false"
minFreeThreads = "8"
minLocalRequestFreeThreads = "4"
appRequestQueueLimit = "100"
enableVersionHeader = "true"
/>
Теперь просто взгляните на атрибут maxRequestLength = "4096" тега <httpRuntime>. Как вы, возможно, уже догадались, все, что вам нужно сделать, это изменить значение на другое значение по вашему выбору (8192 для 8 Мбайт, 16384 для 16 Мбайт, 65536 для 64 Мбайт и так далее ...).
Вы бы сделали это в фактическом iframe, который отправляется обратно, верно?