项目部署到产品环境后,难免会发生一些故障,有一些可以在本地测试环境中直接重现,而有一些则无法重现。对于可以在本地测试环境中重现的Bug,开发人员往往能够很迅速地进行问题排查。而对于无法重现的Bug,就没这么容易了。
Visual Studio 中提供了远程调试的功能,可以帮助我们进行远程调试。
-
本机安装 Visual Studio(,这里用 Visual Studio 2012 进行演示)
-
您的 Asp.Net 项目源代码,同时确保远程服务器上使用的正是由该源码编译产生的(Debug、Release 版本都行)
找到 Microsoft Visual Studio / Visual Studio Tools / Remote Debugger Folder 目录中对应的调试版本到远程服务器
http://jingyan.baidu.com/article/59a015e3a75708f794886533.html
其实是想监视一下服务器上IIS的进程回收机制,看我写的Cache定期更新是不是可用。本地是xp也没法安装IIS6.0,没办法必须要用远程调试。
对现有代码进行调试。
步骤很简单:
1.启动远程调试组件
1)安装调试组件:远程服务器上只需要安装visual Studio的Remote Debugger远程调试组件就可以了,具体安装方法MSDN上已有详细的描述。
2)运行调试组件:安装完成后,在开始菜单visual studio Tools 下,运行Remote debuger。或者找到文件C:Program FilesMicrosoft Visual Studio 8Common7IDERemote Debuggerx86msvsmon.exe.
3)运行mvsmon.exe,设置工具-选项为Windows身份验证,否则断点会不起作用
控制面板的用户选项里面,添加和远程机相同的用户命,密码,可以在用户管理里直接添加。
shift+右键--以其他身份运行-启动VisualStudio
调试-附加到进程(注意传输选择:默认值,限定符输入远程机IP )
执行刷新,附加到指定进程就可以了
如果要调试远程WebService,需要将web.config里面的Debug选项设置为true,还要讲对应的pdb符号文件拷过去。
<system.web> <compilation debug="true" targetFramework="4.0" /> </system.web>
2.调试
1)更改虚拟路径。把要调试的解决方案的代码拷贝远程服务器,并共享。在IIS上设置需要调试网站的虚拟路径,指向解决方案下的表示层。
2)在本地打开远程服务器上的解决方案代码。
3)附加到进程。运行后,就可以在本地的visual studio的开发平台下,附加到远程服务器的进程了。调试>附加到进程。在附加到进程窗口选择限定符为远程服务器名,当然要保证用户对远程服务器有管理员权限。
这样就OK了,设置断点尽情调试吧。
WebService调试也相同。