VSCode无法调试ASP.NET Core 6.0 Web应用该如何排查?
.NET6正式版VSCode调试启动即停止问题排查方案
一、获取调试日志的方法
在你现有的launch.config对应配置项中新增日志输出配置,即可在VSCode调试控制台查看完整的调试运行链路日志:
{ "name": ".NET Core Launch (web)", "type": "coreclr", "request": "launch", "preLaunchTask": "Build:Api", "program": "${workspaceFolder}/api/bin/Debug/net6.0/api.dll", "args": [], "cwd": "${workspaceFolder}", "stopAtEntry": false, // 新增以下日志配置 "logging": { "engineLogging": true, "moduleLoad": true, "programOutput": true, "exceptions": true }, "serverReadyAction": { "action": "openExternally", "pattern": "\\bNow listening on:\\s+(https?://\\S+)" }, "env": { "ASPNETCORE_ENVIRONMENT": "Development" } }
添加后重新启动调试,所有调试器运行日志、程序启动的标准输出/错误都会打印在调试控制台面板,可以从中定位具体失败原因。
二、常见触发该问题的原因排查
- 工作目录配置错误:你当前配置的
cwd为工作区根目录,但项目dll存放在api子目录下,ASP.NET Core启动时会默认读取当前工作目录下的appsettings.json、运行时配置等文件,找不到对应文件会直接退出。建议将cwd修改为${workspaceFolder}/api后重试。 - 程序本身启动失败:先手动在终端执行以下命令,确认程序可以正常运行,排除程序代码或编译问题:
如果直接运行就报错,优先解决程序本身的启动错误,再排查调试配置问题。cd ${your_workspace_path}/api dotnet bin/Debug/net6.0/api.dll - 编译输出路径不匹配:清空项目根目录下的
bin、obj文件夹,手动执行dotnet clean && dotnet build确认编译无报错,核对编译输出的dll路径和program配置的路径是否一致。 - 正则转义问题:你现有配置中
serverReadyAction的pattern字段的反斜杠没有转义,部分环境下会导致匹配失败,调试器判定服务启动失败主动终止进程,修改为"pattern": "\\bNow listening on:\\s+(https?://\\S+)"即可。
内容的提问来源于stack exchange,提问作者superkinhluan
相关产品推荐
相关产品推荐

