You need to enable JavaScript to run this app. VSCode Docker调试.NET 5 WebApi报csharp.listRemoteProcess失败?
优惠活动
大模型
产品
解决方案
定价
更多

VSCode Docker调试.NET 5 WebApi报csharp.listRemoteProcess失败?

.NET 5 WebApi 容器调试附加时报错问题

有一个.NET 5 WebApi项目,计划在Docker环境完成托管与调试。
执行docker-compose命令后,项目可正常启动运行,但在附加调试器时抛出如下报错:
Running the contributed command csharp.listRemoteProcess failed

现有配置内容

Dockerfile 配置

FROM mcr.microsoft.com/dotnet/sdk:5.0 as debug
ENV DOTNET_USE_POLLING_FILE_WATCHER=true  
ENV ASPNETCORE_URLS=http://+:5000
EXPOSE 5000/tcp
WORKDIR /app
COPY . /app
RUN apt-get update
RUN apt-get install -y unzip
RUN curl -sSL https://aka.ms/getvsdbgsh | /bin/sh /dev/stdin -v latest -l ~/vsdbg
ENTRYPOINT ["dotnet", "watch", "run", "--project myproject.csproj"]

docker-compose 配置

version: '3.4'
services: 
  server:
    build: 
      context: ./myproject
      target: debug
    ports: 
      - "5000:5000"
    container_name: myproject
    volumes:
      - ./myproject:/app

VS Code launch.json 调试配置

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": ".NET Core Docker Attach",
            "type": "coreclr",
            "request": "attach",
            "processId": "${command:pickRemoteProcess}",
            "pipeTransport": {
                "pipeProgram": "docker",
                "pipeArgs": [ "exec", "-i", "csharp" ],
                "debuggerPath": "/root/vsdbg/vsdbg",
                "pipeCwd": "${workspaceRoot}",
                "quoteArgs": false
            },
            "sourceFileMap": {
                "/work": "${workspaceRoot}/myproject/"
            }
        }
    ]
}

报错原因与修复步骤

  • 容器名不匹配导致管道连接失败
    当前launch.json中pipeArgs传入的容器名是csharp,但docker-compose里明确指定容器名为myproject,执行docker exec -i csharp命令会直接返回找不到容器的错误,调试器根本无法和容器建立管道,自然会触发列取远程进程失败的报错。
    修复:将pipeArgs内容调整为 ["exec", "-i", "myproject"]
  • 源码映射路径错误
    当前sourceFileMap配置的容器内源码路径是/work,但容器通过volume挂载的项目实际路径是/app,就算管道连接正常,后续附加调试时也会因为路径不匹配出现断点不生效、源码无法定位的问题。
    修复:将sourceFileMap的键调整为/app,即配置为 "/app": "${workspaceRoot}/myproject/"
  • 冗余配置清理
    Dockerfile中的COPY . /app步骤属于冗余配置,因为compose的volume挂载会直接覆盖/app下的原有文件,移除此步骤可以缩短镜像构建时间、减少镜像体积。
  • 异常排查兜底
    完成上述修改后如果依然报错,可以手动执行docker exec -it myproject bash进入容器,运行/root/vsdbg/vsdbg --version验证调试器是否可正常执行,排除调试器安装损坏、执行权限不足的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.26 07:45:05