Ошибка 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.

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

Другие вопросы по тегам