NET 6
项目修改/设定端口号
问题回顾(终端运行dotnet run xxxxxx.dll
会显示为默认端口问题)
问题别名:
- (NET 6 怎么修改项目端口号)
- (NET Web Api 怎么修改项目端口号)
- 等等
声明
文章自定义词汇声明:
名称 | 路径 | 文件名 | 备注 |
---|---|---|---|
启动文件 | \Properties | launchSettings.json | 位于项目路径下 |
入口路径 | – | ${projectName} | 路径 = 你的项目所在的路径 |
环境声明:
名称 | 版本 | 备注 |
---|---|---|
.NET Framework | 4.7.x | – |
dotnet | 6.0.9 | – |
NET.CoreApp | 3.1.29 | – |
如题,当我在项目的\bin\Debug\
路径下直接运行这个命令且不附加任何参数时,它会运行为默认端口port:5000
,而在我的项目启动方案里设置了appsettings.Development
,appsettings
两个运行方案,这和我的预期不符。
经过一段时间的搜索和测试,大致明白了
dotnet run
命令的正确使用方法!
- 首先 ,运行这个
dotnet run
命令,不需要进入\bin\Debug
或\bin\Release
路径,只需要确保进入项目入口路径即可;- 举例:我的项目路径是
G:\Code\ASP\ApiDB\
,就不用进入\bin
路径了
- 举例:我的项目路径是
- 然后,在入口路径下,执行该命令时,就会自动执行
appsettings.Development
方案。在这个入口路径下执行时,他会根据启动文件G:\Code\ASP\ApiDB\Properties\launchSettings.json
来确定你怎么启动项目。
我的(launchSettings.json
已删减)配置如下:
{
"$schema": "https://json.schemastore.org/launchsettings.json",
"profiles": {
"ApiDB": {
"commandName": "Project",
"launchBrowser": true,
"launchUrl": "swagger",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "http://localhost:5094",
"dotnetRunMessages": true
}
}
}
这里重点关注profiles.ApiDB.commandName
,它会被检索到(此处保留怀疑),然后会根据profiles.ApiDB.environmentVariables.ASPNETCORE_ENVIRONMENT
的的属性来匹配对应的启动方案文件。
profiles.ApiDB.environmentVariables.ASPNETCORE_ENVIRONMENT
只能有三个值:Development
:开发模式Staging
:默认/基础模式Production
:发布/部署模式
创建对应的解决方案时,只需要保持和appsettings.json
文件同级即可。
解决方案设置url
写法如下:
{
"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://localhost:5094"
}
}
}
}
可以简化,但需要自行理解
如果对应方案文件中没有涉及对port
的设定,那么则检索里启动文件${projectName}
配置其中是否存在applicationUrl
设置,如果有就会优先使用此处的端口设定,即为5094
,反之使用默认端口(Http.port:5000
&& Https.port:5001
)。
检索顺序:
profiles.ApiDB.environmentVariables.ASPNETCORE_ENVIRONMENT
>Staging
>profiles.ApiDB.environmentVariables.applicationUrl
启动文件配置> 默认>applicationUrl属性配置
解决方案
回到问题来,其实可以有至少三种解决方案:
- 静态解决方案: 设定对应的json属性即可,如上
- 动态解决方案: 代码中手动指定url(个人不喜欢,可以参考其他文章; 较为繁琐)
- 手动解决方案: 在终端执行
dotnet run
命令时,增加子命令--environment Production | Development
(较为繁琐)
参考文档链接:
其他参考文章:
net6 修改webapi默认端口号
补充:
初学者修改端口号,可以使用Visual Studio 2022 | 2019
版本菜单栏中的调试
>${projectName} 调试属性
中找到该项目配置。
推荐搜索引擎:微软必应-没有牛皮癣广告