Ошибка 404 - загрузка файла размером более 30 МБ
В нашем веб-API мы не можем загружать файлы размером более 30 МБ. Раньше мы получали ошибку 404, такую как "404 - Файл или каталог не найден. Возможно, искомый ресурс был удален, изменилось его имя или временно недоступен".
Погуглив и увидев различные посты, я устал от изменений в моем конфигурационном файле:
Web.Config:
<system.web>
<httpRuntime maxRequestLength="204800" timeout="7200" />
</system.web>
<requestFiltering>
<requestLimits maxAllowedContentLength="209715200" maxQueryString="2097151" maxUrl="10999"/>
</requestFiltering>
Но все же я не смог загрузить файл размером более 30 МБ. Но тот же код работает нормально, чтобы загрузить файл, который меньше 30 МБ.
Есть что-то, что я здесь пропустил?
2 ответа
Вставка того, что сработало для меня Пришлось внести два изменения:
Обновить web.config
со следующими настройками:
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="209715200" />
</requestFiltering>
</security>
</system.webServer>
Но это не помогло мне. Мне пришлось добавить еще один атрибут в API Controller, чтобы он заработал.
[HttpPost]
//[DisableRequestSizeLimit]
[RequestSizeLimit(70_000_000)] //Files sizes upto 70 MB are allowed
Моя установка была шаблоном Blazor WebAssembly с опцией ASP Hosted. Надеюсь, это кому-то поможет.
Можете ли вы изменить свой web.config для использования system.webServer
а также security
?
<configuration>
<system.web>
<httpRuntime maxRequestLength="204800" />
</system.web>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="209715200" />
</requestFiltering>
</security>
</system.webServer>
</configuration>
1.) Откройте диспетчер IIS.
2.) Выберите веб-сайт, который вы хотите настроить.
3.) Убедитесь, что вы находитесь в представлении функций в соответствии с кнопкой в нижней части менеджера.
4.) Выберите Фильтрация запросов и откройте его, дважды щелкнув значок. Откроется панель фильтрации запросов.
5.) На панели "Действия" в правой части экрана щелкните ссылку "Изменить параметры компонента...". Откроется окно "Изменить параметры фильтрации запросов".
6.) В разделе "Пределы запросов" введите соответствующую максимально допустимую длину содержимого (в байтах) и нажмите кнопку "ОК". Перезагрузите IIS.
Это сработало для меня:)