Ошибка 404 после запуска asp.net core приложения

Я сделал публикацию для самостоятельного выполнения asp.net core приложения с той целью, чтобы мог директорию с опубликованными файлами перенести на другой компьютер и запустить приложение локально с помощью исполняемого файла. После запуска исполняемого файла видно что приложение слушает запросы:

warn: Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServer[8]
      The ASP.NET Core developer certificate is not trusted. For information about trusting the ASP.NET Core developer certificate, see https://aka.ms/aspnet/https-trust-dev-cert.
info: Microsoft.Hosting.Lifetime[14]
      Now listening on: http://localhost:5298
info: Microsoft.Hosting.Lifetime[14]
      Now listening on: https://localhost:7298
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Production
info: Microsoft.Hosting.Lifetime[0]
      Content root path: D:\publish

но при попытке открытия его в браузере я получаю ошибку:

Страница localhost не найдена Не найдена страница для веб-адреса http://localhost:5298/swagger/index.html
HTTP ERROR 404

c чем это может быть связано?

Возможно это важно: у меня в visual studio до публикации после запуска команды команды dotnet run такое же содержание сообщения было в консоли:

warn: Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServer[8]
      The ASP.NET Core developer certificate is not trusted. For information about trusting the ASP.NET Core developer certificate, see https://aka.ms/aspnet/https-trust-dev-cert.
info: Microsoft.Hosting.Lifetime[14]
      Now listening on: http://localhost:5298
info: Microsoft.Hosting.Lifetime[14]
      Now listening on: https://localhost:7298
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Production
info: Microsoft.Hosting.Lifetime[0]
      Content root path: D:\publish

но в этом случае оно у меня работало и ошибки 404 не было.


Ответы (1 шт):

Автор решения: Vladislav Mikkoev

Возможно при публикации (в релизе) не может сгенерироваться swagger.json для страницы /swagger/index.html, поэтому вылетает 404 ошибка. А остальные эндпоинты могут при этом работать. По умолчанию swagger.json доступен по ссылке /swagger/v1/swagger.json, можно либо попробовать перейти по этому роуту и посмотреть что выдаёт либо если он отличается от дефолтного, посмотреть в своём приложении что прописано и перейти на него, в зависимости от ошибки предпринимать определённые действия по устранению.

Также ещё стоит посмотреть есть ли наличие директив в коде на #if DEBUG или #if RELEASE, либо проверки на переменную окружения из Properties/launchSettings.json на ASPNETCORE_ENVIRONMENT. Может при билде в Release + Production что-то не залетает в итоговый билд.

→ Ссылка