升级.NET 6后dotnet watch忽略launchsettings.json端口配置问题
问题原因
- .NET 6 对
dotnet watch命令的默认行为做了破坏性变更:默认不会自动加载目标项目下launchSettings.json的配置,而是优先使用.NET默认的5001/5000端口,除非显式指定加载启动配置文件。 - 你执行命令时没有指定对应的启动配置文件(launch profile)名称,
dotnet watch没有匹配到你配置的Appprofile,所以没有加载对应的applicationUrl配置。
解决方案
你可以任选以下任一方式让应用监听5003端口:
方式1:显式指定启动配置文件名称
执行命令时加上--launch-profile参数指定你定义的App配置即可:
dotnet watch --project app\App.csproj run --launch-profile "App"
如果需要稳定生效,可以直接在项目的.csproj文件中添加以下配置,默认指定启动profile:
<PropertyGroup> <LaunchProfile>App</LaunchProfile> </PropertyGroup>
配置后直接执行原命令即可读取对应端口配置。
方式2:直接在命令行指定监听端口
如果不需要复用launchSettings的其他配置,可以直接通过--urls参数指定端口:
dotnet watch --project app\App.csproj run --urls "https://localhost:5003;http://localhost:5002"
方式3:在appsettings.json中配置监听地址
在项目的appsettings.Development.json(或者全局appsettings.json)中添加以下配置,优先级高于默认端口:
{ "Urls": "https://localhost:5003;http://localhost:5002" }
配置后无需修改启动命令即可生效。
内容的提问来源于stack exchange,提问作者Liero
相关产品推荐
相关产品推荐

