问题回顾(终端运行`dotnet run xxxxxx.dll`会显示为默认端口问题)

NET 6 项目修改/设定端口号

问题回顾(终端运行dotnet run xxxxxx.dll会显示为默认端口问题)

问题别名:

  • (NET 6 怎么修改项目端口号)
  • (NET Web Api 怎么修改项目端口号)
  • 等等

声明

文章自定义词汇声明:

名称路径文件名备注
启动文件\PropertieslaunchSettings.json位于项目路径下
入口路径${projectName}路径 = 你的项目所在的路径

环境声明:

名称版本备注
.NET Framework4.7.x
dotnet 6.0.9
NET.CoreApp3.1.29

如题,当我在项目的\bin\Debug\路径下直接运行这个命令且不附加任何参数时,它会运行为默认端口port:5000,而在我的项目启动方案里设置了appsettings.Developmentappsettings两个运行方案,这和我的预期不符。

经过一段时间的搜索和测试,大致明白了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} 调试属性中找到该项目配置。

推荐搜索引擎:微软必应-没有牛皮癣广告


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值