在工作中有时候需要在服务器的环境下远程调试,例如调试微信相关服务的时候。
1. 下载远程调试工具
网址:https://visualstudio.microsoft.com/zh-hans/downloads/
下载后直接安装至完成。
启动Remote Debugger:
如果只是短时间测试,可以选择无身份验证,为了安全,工具自动设置了空闲时间,即多久没有操作会自动关闭此功能。
2.新建测试项目
建了一个简单的HelloWorld项目,简单几句代码,加上断点。
发布debug到远程服务器。
双击HelloWorld.exe,运行程序
3.开始调试
点击菜单【调试】->【附加到进程】,打开如下页面
① 选择连接类型
如果开启了身份验证,则默认即可,否则选择【无身份验证】。
② 填写服务器的IP及调试服务的端口
填写完后直接回车,不要点击后面的【查找】按钮。在可用进程中会列出服务器端的进程列表。
③筛选进程
可选,如果服务器端进程较多,可以在此筛选,支持模糊查询。
找到HelloWorld.exe,双击改进程或点击附加按钮,和附加本地进程一致。
随便输入什么字符,回车,可以看到进入了断点
可以正常进行调试了。
4. 调试IIS中的网站
如果是调试发布到IIS中的网站,则需要附加的进程为w3wp.exe。
可能会遇到如下情况:
如果看不到该进程,则需考虑如下操作,①访问该网站,休眠状态有时候找不到该进程。②勾选“显示所有用户的进程”,再刷新。
如果看到多个w3wp.exe,这是在IIS中部署了多个网站,不知道该附加到哪个上面,可以以管理员权限运行 cmd,执行如下命令:
代码语言:javascript复制cd %windir%system32inetsrv
appcmd list wp
在执行结果中可以看到网站的名称和对应的进程ID,在附加进程的时候根据进程ID区分。