Ошибка 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 шт):
Возможно при публикации (в релизе) не может сгенерироваться swagger.json
для страницы /swagger/index.html
, поэтому вылетает 404 ошибка. А остальные эндпоинты могут при этом работать. По умолчанию swagger.json
доступен по ссылке /swagger/v1/swagger.json
, можно либо попробовать перейти по этому роуту и посмотреть что выдаёт либо если он отличается от дефолтного, посмотреть в своём приложении что прописано и перейти на него, в зависимости от ошибки предпринимать определённые действия по устранению.
Также ещё стоит посмотреть есть ли наличие директив в коде на #if DEBUG
или #if RELEASE
, либо проверки на переменную окружения из Properties/launchSettings.json
на ASPNETCORE_ENVIRONMENT
. Может при билде в Release
+ Production
что-то не залетает в итоговый билд.