前言
大家在使用vs打包后的文件部署到服务器后,有时候我们需要对线网的后台进行调试。但是它不像在VS中。这个时候我们该怎么调试呢?
微软想到了这一点,他们在 VS 中给我们提供了一个功能: Remote Debugger,要远程调试我们就需要用到它。
关于 Remote Debugger
使用VS远程调试器Remote Debugger,你可以调试部署在不同的计算机上的VS应用程序。它适用于Windows桌面应用程序和ASP.NET的应用程序。
获取远程工具
获取远程工具的方式有两种。一种是从MSDN的文档中选择下载自己要下载的远程工具,还有一种是从你主机安装Visual Studio的目录中获取。
下载并安装远程工具
在要调试的设备或服务器(而不是机器运行Visual Studio),下载与你的操作系统的版本(X86,X64,或ARM版)相匹配的远程工具。
从主机拷贝
从主机VS的安装目录中拷贝Remote Debugger文件夹至你要远程的服务器。可以放到任意位置,不影响程序运行。
Program Files\Microsoft Visual Studio 14.0\Common7\IDE\Remote Debugger
启动远程调试器
Remote Debugger文件夹里面会有x86、x64两个文件夹对应相应版本的工具,根据服务器的系统环境进入相应的文件夹并以管理员身份运行里面的远程调试器msvsmon.exe。
上面就是我们运行的远程调试器,它默认是Windows身份验证的。打开工具>选项 配置如下:
远程调试的ASP.NET应用
在服务端配置的调试器有两种验证模式,Windows身份验证和无身份验证。下面演示Windows身份验证的示例。
首先运行本地项目,打开 调试>附加到进行 界面如下,我们只需要在连接和目标填上服务器IP和远程调试器选项中的端口号,然后点击查找。
这个时候服务器的远程调试器会显示你的已连接信息
选择Windows身份验证和无身份验证的区别就多了一个身份验证,验证通过后我们会看到服务器的全部进程,选择显示所有用户的进程找到w3wp.exe,然后附加到进程。
这个时候我们就可以链接在本地VS对服务器的程序进行调试了。
常见的问题
1.ASP.NET程序所有步骤都完成了,但还是无法调试。
答:要保证服务器代码和本地代码一致,也就是bin文件一致。实在不行就把本地bin文件替换服务器程序的bin文件。
2.其他语言的项目怎么调试?像C、VB等。
答:这些在MSDN上面都有,直达链接
3.我如果要下载远程调试工具该怎么选择
答:根据表选择对应版本
版本 | 链接 | 说明 |
---|---|---|
Visual Studio 2015更新3 | 远程工具 | 如果出现提示,参加免费的Visual Studio开发要领组或者你可以注册一个有效的Visual Studio订阅。然后重新打开链接,如果有必要。总是下载版本匹配您的设备的操作系统(x86,x64或ARM版) |
Visual Studio 2015(旧) | 远程工具 | 如果出现提示,参加免费的Visual Studio开发要领组或者你可以注册一个有效的Visual Studio订阅。然后重新打开链接,如果有必要。 |
VisualStudio 2013年 | 远程工具 | 在Visual Studio 2013文档下载 |
VisualStudio 2012 | 远程工具 | 在Visual Studio 2012文档下载 |