Ответ 1
Если вы используете ASP.NET, вам необходимо изменить свойство maxRequestLength web.config.
Смотрите эту ссылку.
Есть ли другое место помимо файла metase.xml, где размер загрузки файла может быть изменен?
В настоящее время я запускаю промежуточный сервер с IIS6, и он настроен на загрузку файлов до 20 МБ. Это прекрасно работает. У меня есть новый производственный сервер, где я пытаюсь настроить этот же доступный размер. Поэтому я отредактировал файл metase.xml и установил его на 20971520. Затем я перезапустил IIS, и это не сработало. Поэтому я перезапустил весь сервер, что тоже не сработало. Я могу загружать файлы около 2 МБ, поэтому он определенно позволяет размер файлов больше стандартного размера 200 КБ по умолчанию. Я пытаюсь загрузить файл размером 5 МБ, и моя страница upload.aspx полностью выйдет из строя. Возможно ли, что мне нужно настроить что-то еще? Производственный сервер находится на ферме серверов, могут ли быть определенные ограничения в конце?
Спасибо
Если вы используете ASP.NET, вам необходимо изменить свойство maxRequestLength web.config.
Смотрите эту ссылку.
Я продолжу свой ответ на ваш вопрос, чтобы учесть другие возможные ситуации.
Очень хорошая ссылка, чтобы узнать о загрузке файлов большого размера: 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
Другой источник:
Еще один URL, где один пользователь протестировал множество компонентов здесь:
http://remy.supertext.ch/2008/01/file-upload-with-aspnet/
Он ссылается на проект codeproject (!), который является еще одним очень хорошим примером использования больших файлов и flash здесь:
Я уже много часов борюсь с этой проблемой и, наконец, решил свою проблему, и хочу поделиться ею здесь.
Если вы используете urlscan, в его конфигурации также существует ограничение на размер файла. Чтобы внести изменения в это, вам необходимо отредактировать файл "UrlScan.ini", расположенный (обычно) по адресу:
C:\WINDOWS\system32\Inetsrv\UrlScan
Измените значение " MaxAllowedContentLength" на желаемое значение максимального размера файла.
Если вы загружаете документ из рад-управления, вы можете просто использовать эту строку кода.
RadFileExplorer1.Configuration.MaxUploadFileSize = 2000 * 1024;
Это сработало для меня.