Увеличение ограничения размера загрузки файлов в iis6

есть ли какое-либо другое место, кроме метабазы.xml-файл, в котором размер загрузки файла может быть изменен?

в настоящее время я запускаю промежуточный сервер с IIS6, и он настроен на загрузку файлов до 20 Мб. Это прекрасно работает. У меня есть новый производственный сервер, где я пытаюсь настроить этот же доступный предел размера. Поэтому я отредактировал метабазу.xml-файл и установите его в 20971520. Затем я перезапустил IIS, и это не сработало. Поэтому я перезапустил весь сервер, это тоже не сработало. Я могу загружать файлы вокруг 2mb, поэтому он определенно позволяет размеры файлов больше, чем стандартный размер 200kb по умолчанию. Я пытаюсь загрузить файл 5mb и мою загрузку.aspx страница полностью зависает. Возможно есть что-то еще надо настроить? Производственный сервер находится на ферме серверов, могут ли быть какие-то ограничения, установленные там?

спасибо

4 ответов


Если вы используете ASP .NET, вам нужно изменить maxRequestLength web.свойство конфигурации.

посмотреть этой ссылке.


я расширю свой ответ на ваш вопрос, чтобы учесть другие возможные ситуации.

очень хорошая ссылка, чтобы узнать о загрузке файлов большого размера, это: http://weblogs.asp.net/jgalloway/archive/2008/01/08/large-file-uploads-in-asp-net.aspx

здесь Джон Галлоуэй объясняет лучшие методы для решения проблемы:

1.- Изменение конфигурации машины или web.config:

<system.web>
  <httpRuntime executionTimeout="240" maxRequestLength="20480" />
</system.web>

здесь вы меняете не только maxRequestLength, но вы должны дать больше секунд для executionTimeout.

интересная вещь: примите во внимание, что значение этого параметра игнорируется в режиме отладки. Значение по умолчанию в .NET Framework 2.0 составляет 110 секунд. В .NET Framework 1.0 и 1.1 значение по умолчанию равно 90 секундам.

2.- Говоря о реальном решении, HttpModules нравится бесплатно NeatUpload

3.- Объяснение другого способа загрузки более интуитивно: В Silverlight или flash swfupload

4.-Он говорит об одном ограничении II7. На этой странице http://www.telerik.com/help/aspnet-ajax/upload_uploadinglargefiles.html вы можете найти более интересные настройки для IIS 7, чтобы установить максимум 100 Мегас. Вы добавляете:

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

и вы должны открыть файл C:\Windows\System32\inetsrv\config\applicationHost - ... настройте и найдите строку:

<section name="requestFiltering" overrideModeDefault="Deny" />

изменение кому:

<section name="requestFiltering" overrideModeDefault="Allow" />

еще одна интересная вещь, которую упоминает Галлоуэй: "в ASP.NET 1.0 и 1.1, весь файл был загружен в память перед записью на диск. Были улучшения в ASP.NET 2.0 для потоковой передачи файла на диск во время процесса загрузки."

для IIS6 решение, которое дает Крис, я думаю, подходит:

http://www.banmanpro.com/support2/File_Upload_limits.asp

другой источник:

http://www.telerik.com/support/kb/aspnet-ajax/upload/page-not-found-error-when-uploading-large-files-on-win2003.aspx


другой URL, где один пользователь протестировал много компонентов здесь:

http://remy.supertext.ch/2008/01/file-upload-with-aspnet/

Он ссылается на проект codeproject (!) это еще один очень хороший пример использования больших файлов и flash здесь:

http://www.codeproject.com/KB/aspnet/FlashUpload.aspx


Я боролся с этой проблемой в течение нескольких часов и, наконец, решил свою конкретную проблему, и я хочу поделиться ею здесь.

Если вы используете urlscan, существует ограничение размера файла в его конфигурации, а также. Чтобы внести в него изменения, необходимо отредактировать файл " UrlScan.ini " находится (обычно) по адресу:

C:\WINDOWS\system32\inetsrv\urlscan

изменить значение на "MaxAllowedContentLength" на желаемую максимум файл размер.


Если вы загружаете документ из rad-control, вы можете просто использовать эту строку кода.

RadFileExplorer1.Configuration.MaxUploadFileSize = 2000 * 1024; 

это сработало для меня.