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

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

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

Спасибо

Ответы

Ответ 1

Если вы используете ASP.NET, вам необходимо изменить свойство maxRequestLength web.config.

Смотрите эту ссылку.

Ответ 2

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

Очень хорошая ссылка, чтобы узнать о загрузке файлов большого размера: 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, но вы должны дать больше секунд для исполненияTimeout.

Интересная вещь: учтите, что значение этого параметра игнорируется в режиме отладки. Значение по умолчанию в .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.config и найти строку:

<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

Ответ 3

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

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

C:\WINDOWS\system32\Inetsrv\UrlScan

Измените значение " MaxAllowedContentLength" на желаемое значение максимального размера файла.

Ответ 4

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

RadFileExplorer1.Configuration.MaxUploadFileSize = 2000 * 1024; 

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