VS2015远程调试ASP.NET程序说明

1.    问题背景
一些复杂的多系统耦合的ASP.NET程序往往不便于,发布到服务器之后,可能有些bug本地调试不会出现或很难重现,这种情况下,通过输出日志,也可以确定问题原因,但总是不如直接调试代码来的快,通过VS2015的远程调试功能,可以实现远程调试已经部署到服务器上web程序。
下面详述配置远程调试环境的步骤,配置好远程调试环境后,调试过程和本机调试基本一样。
2.    配置过程
2.1.    配置服务端
安装VS2015的时候,同时安装了一个远程调试代理程序,在安装目录下的“Remote Debugger”文件夹,首先将“Remote Debugger”文件夹复制到要调试的服务器上。
然后启动x64或x86下的msvsmon.exe,这个要和你安装的vs2015版本想匹配,如下:


默认监听端口是4020,单击“工具|选项”菜单命令,可以修改端口号,并设置为无身份验证模式:

之后,可以调试代理就开始工作:
 
2.2.    编译部署程序
建议直接部署debug版程序,调试信息完整,更容易调试。
如果部署release版程序,需要配置编译参数,生成pdb调试符号文件,最好同时禁止优化。
在项目“属性|生成”窗口,取消优化代码:
 
点击底部的“高级”按钮,输出调试信息选项,选择“full”生成完整调试符号文件:
 
编译完成后,将编译好的dll文件及调试符号文件pdb文件,拷贝到服务器上。
2.3.    VS2015远程调试
启动VS2015并打开工程,选择“调试|附加到进程…”命令:
 
第一步,选择“远程(无身份验证)”传输模式;
第二步,输入远程服务器IP及远程调试端口号,敲回车键;
第三步,勾选底部“显示所有用户的进程”,选择ww3wp.exe进程,单击“附加”按钮;
第四步,设置断点,在浏览器中打开远程服务器上URL地址,开始远程调试,和本地调试基本一样。
2.4.    无法命中断点问题
此时设置断点会提示“当前无法命中断点,还没有为该文档加载任何符号”,需要在“工具|选项”窗口,“调试|常规”页面,取消“要求源文件与原始版本完全匹配”选项,如下图:
 
2.5.    反应迟钝问题
与本地调试相比远程调试反应迟缓,因为每次中断运行,服务端都需要将中断现场的进程、线程、模块、寄存器、堆、栈等各种调试信息甚至一些内存块信息传送到本地,导致延迟,所以远程调试的时候尽量少设置断点,尽量不逐行调试。
2.6.    C/C++程序远程调试问题
该文虽然针对的是ASP.NET程序的远程调试设置,对于C/C++程序的远程调试设置也类似,因为不管是哪种程序,远程调试的流程都是一样的。都是通过远程调试代理,将远程调试进程的调试信息,发送到本地IDE调试器,本地调试器将设置的断点信息,控制指令,通过远程调试代理发送给远程调试进程。
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值