如何解决运行 dotnet core webapi 项目的问题
使用“dotnet new webapi”命令创建示例项目,然后删除 Properties/launchSettings.json(以了解如果此文件不存在会发生什么)。在使用“dotnet run”命令运行项目时,项目会运行,但在访问 url - https://localhost:5001/swagger/index.html 时,我收到 HTTP 错误 404。但是如果我在调试中运行相同的项目模式(按 f5),我得到了 swagger 页面。在通过“dotnet run”或 f5 运行时未更改代码或设置,在“dotnet run”时未收到错误。无法理解以下内容:
- 为什么使用上述步骤运行代码时会出现 2 种不同的行为
- 我删除 launchsettings.json 的原因是为了确定哪些其他设置强制使用端口 5000/5001 和协议 http/https。
提前致谢
解决方法
我没有理解你所观察到的行为。即使没有 launchSettings.json
,从头开始创建的 ASP.NET Core 项目也会默认侦听 5000
and 5001
ports。
也就是说,您有几个选项可以设置 ASP.NET Core 应用程序将侦听的地址:
来自 Andrew Lock 的 article。同样来自docs
-
UseUrls()
设置要在Program.cs
中静态使用的网址 - 环境变量 - 使用
DOTNET_URLS
或ASPNETCORE_URLS
设置 URL。 - 命令行参数 - 从命令行运行时使用
--urls
参数设置 URL。 - 使用
launchSettings.json
- 使用applicationUrl
属性设置网址。 -
KestrelServerOptions.Listen()
- 使用Listen()
手动配置 Kestrel 服务器的地址。
dotnet run
command checks launchSettings.json
for configuration,如果它没有找到任何东西,它会在让 Kestrel 将其 default ports :5000
and :5001
分别用于 http 和 https 之前尝试更多的东西。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。