Ошибка 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 что-то не залетает в итоговый билд.