如何在VS2019中调试远程服务器上部署的Windows服务
本地VS2019远程调试服务器Windows服务操作指南
参考运行日志
2021/11/18 19:48:16 服务启动
2021/11/18 19:50:57 服务停止
2021/11/18 19:51:48 服务启动
2021/11/18 19:53:19 服务停止
2021/11/18 20:07:08 服务启动
2021/11/18 20:09:00 服务回调
2021/11/18 20:10:46 服务回调
2021/11/18 20:11:55 服务停止
前置准备
- 本地VS2019已安装「远程调试器」组件,服务器端部署和本地代码*版本完全一致的带调试符号(.pdb)*的服务程序,否则断点无法命中
- 本地与服务器网络互通,服务器防火墙开放VS2019默认调试端口
4024 - 两端操作账号均具备管理员权限,或至少拥有目标Windows服务进程的调试权限
服务器端配置步骤
- 找到本地VS2019安装路径下的远程调试器目录,默认路径为
C:\Program Files (x86)\Microsoft Visual Studio\2019\对应版本号\Remote Debugger,将和服务器架构匹配(x64/x86)的子文件夹整体拷贝到服务器任意目录 - 服务器端进入拷贝好的文件夹,右键点击
msvsmon.exe,选择「以管理员身份运行」 - 在弹出的远程调试器窗口点击「工具」-「选项」,认证模式选择「Windows身份验证」,确认调试端口为
4024后保存配置 - 保持远程调试器窗口后台运行,不要关闭
本地VS2019调试操作步骤
- 打开目标Windows服务的源码项目,确认当前代码版本和服务器部署版本完全匹配
- 结合日志中「启动后约2分钟停止、触发两次回调后停止」的特征,在服务启动入口、回调逻辑、全局异常捕获块位置提前打好断点
- 点击顶部菜单栏「调试」-「附加到进程」
- 弹出窗口中「连接类型」选择「默认」,「连接目标」填写服务器的IP地址或主机名,按回车后输入服务器管理员账号密码完成认证
- 勾选窗口底部的「显示所有用户的进程」,在进程列表中找到对应Windows服务的exe进程,选中后点击「附加」
- 附加完成后触发服务对应业务逻辑,命中断点后即可进行步进调试、查看变量值、定位异常点
常见问题排查
- 断点显示空心无法命中:确认本地代码与服务器部署版本完全一致,确认服务器部署目录下已同步上传对应pdb文件,确认选中的进程为目标服务进程
- 无法连接远程调试器:确认服务器防火墙已开放
4024端口,确认远程调试器已以管理员身份运行,确认本地可正常ping通服务器 - 附加后进程直接退出:在VS顶部「调试」-「异常设置」中勾选「公共语言运行时异常」,调试器会在未处理异常抛出时直接中断,可快速定位报错根因
内容的提问来源于stack exchange,提问作者farid wahyu
相关产品推荐
相关产品推荐

