You need to enable JavaScript to run this app. VS2019运行.NET 5 Kestrel API时忽略launchSettings.json的applicationUrl配置
优惠活动
大模型
产品
解决方案
定价
更多

VS2019运行.NET 5 Kestrel API时忽略launchSettings.json的applicationUrl配置

特定虚拟机无法加载launchSettings.json自定义端口的排查与解决

针对这台单独出现的、无论换目录重装都跑5000/5001默认端口的问题,按照踩坑优先级从高到低列可落地的排查动作:

先核对Visual Studio实际执行的启动逻辑

  • 检查VS顶部调试工具栏的启动配置下拉框,确认当前选中的不是默认的“IIS Express”或者空配置项,必须选中和你launchSettings.json里对应的My.Api配置
  • 右键项目选择「属性→调试」,直接看页面上的下拉选项:
    • 确认选中的启动配置是My.Api
    • 重点检查有没有勾选「不使用启动配置文件启动」选项 ——这个选项的等效命令就是dotnet run --no-launch-profile,会完全绕过所有launchSettings.json的配置,直接走默认Kestrel端口,很多人手滑改完设置之后几个月都注意不到这个勾选项
  • 不要默认你改的launchSettings.json就是VS实际读的那份:确认文件路径严格是项目根目录/Properties/launchSettings.json,很多时候仓库层级混乱,会在仓库根目录、解决方案外层文件夹存了一份旧的同名配置,VS实际解析的是Properties目录下没被你改过的旧文件

排查绕开目录的全局配置干扰

因为你换了新文件夹克隆项目问题依旧,大概率问题不在项目文件夹本身,而在虚拟机的全局用户配置层面:

  • 打开当前Windows用户的环境变量面板,搜索有没有手动设置过ASPNETCORE_URLS变量:这个变量的优先级比launchSettings.json里的applicationUrl高,只要你在用户环境变量里把这个值设成了http://localhost:5000;https://localhost:5001,不管项目里怎么改配置,Kestrel都会优先用环境变量里的端口,换再多项目目录都不解决问题
  • 检查launchSettings.json的文件编码:如果这个文件被存成了UTF-16格式,VS的配置解析器会直接读失败,fallback到默认端口。用记事本打开文件,点「另存为」看底部的编码选项,确认是UTF-8格式,改完覆盖原文件再试
  • 清理VS的本地项目缓存:关闭VS之后,删掉项目目录下的隐藏.vs文件夹,这个文件夹里存了上次调试的配置快照,很多时候你改完launchSettings,VS还在调用缓存里的旧端口配置,哪怕文件内容已经改对了也不生效

验证低概率触发场景

  • 检查.csproj文件里的文件映射配置:正常情况下launchSettings.json不会被打包到输出目录,如果之前改项目的时候不小心加了类似<None Include="Properties\launchSettings.json" CopyToOutputDirectory="Never" />的配置,会导致VS读不到这个配置文件
  • 临时禁用所有第三方VS扩展(比如Docker工具、远程调试扩展、老版本的代码辅助工具),重启VS再启动项目验证:有些旧扩展会篡改VS的默认调试启动参数,等效加了--no-launch-profile的命令,这个行为不会在项目配置里留任何痕迹,禁用扩展之后如果能正常读自定义端口,就定位到是哪个扩展的问题
  • 跑一次显式的命令验证:在项目目录下打开PowerShell,直接执行dotnet run --launch-profile "My.Api",如果这个命令能正确在7000/7001端口启动,说明项目和配置文件本身完全没问题,问题100%出在VS的启动参数或者本地扩展的干扰上

内容的提问来源于stack exchange,提问作者Bradford Dillon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.08 19:54:03