因为经常要将服务部署到公司内网测试环境进行测试,一旦出现bug除了查日志就只能让app端进行抓包,非常的麻烦,痛定思痛,研究了一下VS2019的远程调试功能,废话不多说,直接整。
首先你要确定你的代码发布为Debug模式,因为Release会优化IL中间码,导致你附加到进程调试时有时无法命中断点:

然后发布你的代码打包到服务器上构建镜像创建容器后,打开VS2019的附加到进程:

链接类型选择你部署应用的docker环境,我这里是dockerLinux,选择后,点击查找,在docker cli主机处添加:

填写你服务器的主机名或ip,ssh端口号,以及登陆的用户名比如root,和对应身份验证类型的凭证,然后点击链接。
成功链接后,可以看到远程服务器内正在运行的容器:

选择你要附加的服务,点击确定,之后可以看到容器内正在运行的进程名称:

选中并确定后,可能会弹出一个窗口让你选择代码类型:

这里选择托管就可以了。
由于每次容器重启后第一次附加到进程会因为要在容器内安装调试适配器,会让vs2019处于1分钟左右的未响应状态,耐心等待就好,当准备完成后,vs2019会变成熟悉的橘黄色调试画面,之后就可以打个断点试试了。