You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VS Code中将.NET 7应用调试器附加到Docker进程

调试Docker容器内.NET 7 Web API的解决方案

1. 确保Debug构建与调试符号存在

你的Dockerfile中build和publish阶段默认使用Release配置,虽然docker-compose传递了configuration=Debug参数,但需确认构建过程实际生成了带调试符号(.pdb文件)的Debug版本:

  • 重新构建容器:执行docker-compose build,确保构建时Debug参数生效
  • 进入容器验证:执行docker exec -it testdockerattach ls /app,确认目录下存在TestDockerAttach.pdb文件

2. 正确选择要附加的进程

当你启动调试配置.NET Core Attach后,VS Code会列出容器内的所有进程,你需要选择**命令行包含dotnet TestDockerAttach.dll**的进程:

  • 若进程列表仅显示dotnet,可查看进程的命令行参数,找到对应你的Web API项目的那条记录

3. 优化launch.json配置(可选,提升调试体验)

你可以为launch.json添加pipeTransport配置,直接指定Docker容器的连接方式,同时映射源码路径确保断点命中:

{
    "name": ".NET Core Attach to Docker",
    "type": "coreclr",
    "request": "attach",
    "processId": "${command:pickRemoteProcess}",
    "pipeTransport": {
        "pipeProgram": "docker",
        "pipeArgs": ["exec", "-i", "testdockerattach"],
        "debuggerPath": "/remote_debugger/vsdbg",
        "pipeCwd": "${workspaceFolder}",
        "quoteArgs": false
    },
    "sourceFileMap": {
        "/src/TestDockerAttach": "${workspaceFolder}/TestDockerAttach"
    }
}

4. 启动调试的步骤

  1. 运行docker-compose up -d启动容器
  2. 在VS Code调试面板选择你配置的调试项
  3. 在弹出的进程列表中选中目标进程,即可开始调试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 19:20:20