API ядра .Net возвращает 404 при сохранении большого файла - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть .net core api, который сохраняет файл на файловом сервере.Он отлично работает, когда размер файла небольшой, например, 10 КБ, 1 МБ, 10 МБ.Однако, когда я пытаюсь сохранить файл размером 100 МБ, он возвращает:

404 - Файл или каталог не найден.Возможно, искомый ресурс был удален, изменилось его имя или временно недоступен.

Я обновил параметры kestrel, чтобы игнорировать размер файла:

 .UseKestrel(options => {
                options.Limits.MaxRequestBodySize = null;

            })

Код сохранения файла:

using (var imageFile = new FileStream(fullPath, FileMode.Create))
            {
                imageFile.Write(bytes, 0, bytes.Length);
                imageFile.Flush();
            }

Веб-конфигурация:

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

Однако он по-прежнему не работает (для большого размера файла) при размещении на сервере.Хотя он работает нормально, когда я размещаюсь на своей локальной машине, используя iis express.

В чем может быть причина?Или какие-то настройки мне здесь не хватает?

1 Ответ

0 голосов
/ 04 февраля 2019

проверьте Неожиданная не найденная ошибка с IIS .Вам нужно увеличить / установить maxAllowedContentLength

<system.webServer>
  <security>
    <requestFiltering>
      <!-- This will handle requests up to 50MB -->
      <requestLimits maxAllowedContentLength="52428800" />
    </requestFiltering>
  </security>
</system.webServer>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...