本主题适用于:
Visual Studio 版本 | Visual Basic | C# | C++ | J# | Web Dev |
速成版 | 否 | 否 | 否 | 否 | 否 |
标准版 | 否 | 否 | 否 | 否 | 否 |
专业团队版 | 是 | 是 | 是 | 是 | 是 |
远程调试安装在 Visual Studio 2005 中得到了极大的简化。除了 T-SQL 调试外,所有远程调试方案都使用远程调试监视器 (msvsmon.exe)。以前某些调试方案所需的“计算机调试管理器”(mdm.exe) 现在已不再使用。此外,msvsmon.exe 现在有了图形用户界面,替代了以前的命令行界面。
若要启用远程调试,您可以:
-
在远程计算机上安装远程调试监视器并在您启动调试时启动它,或者
-
从一个共享中远程运行远程调试监视器。
从一个文件共享中运行远程调试监视器是启用远程调试的最容易的方法。Visual Studio 将 msvsmon.exe 安装到以下目录:
Install path/Microsoft Visual Studio 8/Common7/IDE/Remote Debugger/x86
Install path/Microsoft Visual Studio 8/Common7/IDE/Remote Debugger/x64
Install path/Microsoft Visual Studio 8/Common7/IDE/Remote Debugger/ia64
仅在 64 位平台上安装 64 位组件。
通过在 Visual Studio 计算机上共享远程调试器目录,可以在远程计算机上运行 msvsmon.exe。
当远程调试监视器从一个共享中运行时,以下调试器功能不可用:
-
在 Windows 98 或 Windows ME 上进行调试
-
单步执行 XML Web services。(可能仍然需要手动附加。)
-
自动调试 ASP.NET Web 应用程序或基于 ATL Server 的 ISAPI 扩展。(同样,可能仍然需要手动附加。)
作为从一个共享中运行的替代方式,可以使用 Visual Studio 2005 远程调试器 CD 在远程计算机上安装必需的远程调试组件。此安装提供对所有远程调试功能的访问。
对于某些调试方案,必须安装附加组件。
安装远程调试组件(非 SQL Server 2005)
-
远程调试器可以从 Visual Studio 2005 安装套件的最后一张光盘获得。在远程计算机上插入此光盘。例如,如果在您的安装套件中有四张光盘,请在远程计算机上插入第四张光盘。如果您的安装套件中提供的是 DVD 而不是 CD,请插入该 DVD。
-
在 Windows Explorer 中,打开 CD 或 DVD。在 CD 上找到 Remote Debugger 文件夹或在 DVD 上找到 vs/Remote Debugger。
-
在“Remote Debugger”文件夹中,打开与您的平台(x86、x64 或 IA64)匹配的子文件夹。
-
启动位于该子文件夹中的 rdbgsetup.exe 并按照说明完成安装。
如果您愿意,可以通过手动复制文件来安装远程调试组件。请参见远程调试组件以获取所需组件及其安装位置的列表。Visual Studio 包括分别针对 32 位和 64 位平台的不同版本的远程调试监视器。如果使用 rdbgsetup.exe,远程组件安装程序会自动安装正确版本的远程调试监视器。如果选择手动复制文件,则需要确保复制的版本是正确的。
-
安装远程调试组件以后,需要确保具有所需的权限以便对远程计算机上的程序进行调试。请参见远程调试权限以获取所需权限的列表。
安装了远程调试组件并具备了相应的权限以后,就可以开始进行远程调试。
在 SQL Server 2005 计算机上安装远程调试组件
-
安装程序已经加载到 SQL Server 2005 计算机上。请找到 rdbgsetup.exe 程序,该程序通常在 <sql server install dir>/90/Shared 目录中。
-
双击以便运行该程序。完成之后,msvsmon.exe(远程调试监视器)即已安装。
-
安装远程调试组件以后,需要确保具有所需的权限以便对远程计算机上的程序进行调试。请参见远程调试权限以获取所需权限的列表。
安装了远程调试组件并具备了相应的权限以后,就可以开始进行远程调试。
开始远程调试
-
确保您在远程计算机上具有必需的远程调试权限。有关更多信息,请参见远程调试权限。
-
如果不进行 SQL 调试,请确保您正在运行远程计算机上的远程调试监视器。有关更多信息,请参见如何:运行远程调试监视器。进行 SQL 调试时,远程调试监视器会在调试期间自动启动。
-
在调试器主机上启动 Visual Studio。
使用 Visual Studio 附加到或启动要在远程计算机上调试的程序。有关更多信息,请参见如何:附加到运行进程。
在 Windows XP Service Pack 2 上启用 Web 服务器调试
Windows XP Service Pack 2 提供了增强的安全性。若要在 Windows XP Service Pack 2 上启用 Web 服务器调试,必须在 Web 服务器宿主计算机上执行以下附加步骤。需要管理员特权。
在 Windows XP Service Pack 2 上启用 Web 服务器调试
-
打开“控制面板”,然后双击“安全中心”图标。
-
在“管理安全设置”下,单击“Windows 防火墙”。
-
在“Windows 防火墙”窗口中,单击“例外”选项卡,然后单击“添加端口”按钮。
步骤 2 到 5 将打开 TCP 80 端口,该端口在进行 ASP.NET、ASP 和 ATL Server 调试时需要打开。
-
在“添加端口”对话框中:
-
对于“名称”,键入说明,如 TCP 80 端口。
-
对于“端口号”,键入 80。
-
对于“协议”,选择“TCP”。
-
(可选)按“更改范围”按钮。在“更改范围”窗口中,选择“仅我的网络(子网)”。这会限制对防火墙洞(向本地子网上的计算机开放的防火墙洞)的访问。如果可能,请使用此选项。
-
单击“确定”关闭“更改范围”对话框(如果在步骤 d 中打开了它)。
-
-
单击“确定”关闭“添加端口”对话框。
-
单击“确定”关闭“Windows 防火墙”对话框。
为远程调试手动配置 Windows XP Service Pack 2 防火墙
由于 Windows XP Service Pack 2 增强了安全功能,因此,在 Windows XP SP2 平台上进行远程调试需要一些附加步骤来配置 Windows 防火墙。当您第一次运行远程调试器时,会自动执行这些步骤。如果出于某种原因需要手动设置,请按本节的步骤执行。
如果 Windows 防火墙关闭,则不需要配置防火墙。
如果 Windows 防火墙打开,则必须打开一些端口,并为 Visual Studio 和远程调试中涉及的其他可执行文件授予权限。Windows 防火墙不能在 Shielded 模式下。
警告 |
---|
将 Windows 防火墙配置为允许远程调试可能会使其他用户获得远程访问权限。您可以将这种访问局限于本地子网上的计算机,从而降低安全风险。 |
配置 Visual Studio 主机
-
在“开始”菜单中,单击“控制面板”。
-
在“控制面板”窗口中,单击“网络和 Internet 连接”。
-
在“网络和 Internet 连接”窗口中,单击“更改 Windows 防火墙设置”。
-
在“Internet 连接防火墙”窗口中,单击“例外”选项卡。
-
在“例外”选项卡上,单击“添加端口”按钮。
-
执行以下操作打开 TCP 端口 135,DCOM 使用该端口与远程计算机通信。
-
在“权限”对话框中选择“指定端口”。
-
在“指定端口”下:
-
对于“协议”,选择“TCP”。
-
对于“端口号”,键入 135。
-
对于“说明”,键入说明(如远程调试 DCOM)。
-
(可选)对于作用范围,选择“仅本地子网”。这会限制对防火墙洞(向本地子网上的计算机开放的防火墙洞)的访问。如果可能,请使用此选项。
-
单击“确定”关闭“权限”对话框。
-
-
如果您的域策略要求通过 IPSec 进行网络通信,则执行此步骤;否则跳过此步骤。
-
重复上一步打开 UDP 端口 4500(用于 IP 安全),然后用“UDP”取代“协议”,用“4500”取代“端口号”。
-
以同一方式打开 UDP 端口 500(用于 IP 安全),然后用“UDP”取代“协议”,用“500”取代“端口号”。
-
-
将 Devenv.exe(Microsoft Visual Studio 开发环境)添加到 SP2 应用程序安全“例外”列表中,使其能在运行时动态打开端口。
-
单击“添加程序”。
-
在“添加程序”对话框中,单击“浏览”按钮。
-
在“浏览”对话框中,导航至 devenv.exe 所在位置(通常是 SystemDrive:/Program Files/Microsoft Visual Studio 8 Common7/IDE)。选择 devenv.exe。
-
单击“确定”关闭“浏览”对话框。
-
(可选)按“更改范围”按钮。在“更改范围”窗口中,选择“仅我的网络(子网)”。这会限制对防火墙洞(向本地子网上的计算机开放的防火墙洞)的访问。如果可能,请使用此选项。
-
单击“确定”关闭“更改范围”对话框(如果您在步骤 e 中打开了它)。
-
单击“确定”关闭“选择程序”对话框。
-
-
单击“确定”关闭“Internet 连接防火墙”。
配置远程计算机
-
从“开始”菜单中选择“控制面板”。
-
在“控制面板”窗口(分类视图)中,单击“网络和 Internet 连接”。
-
在“网络和 Internet 连接”窗口中,单击“更改 Windows 防火墙设置”。
-
在“Internet 连接防火墙”窗口中,单击“例外”选项卡。
-
在“例外”选项卡上,单击“添加”按钮。
步骤 6 到 8 打开 TCP 135 端口,DCOM 使用该端口与远程计算机通信。
-
在“权限”对话框中选择“指定端口”。
-
在“指定端口”下:
-
对于“协议”,选择“TCP”。
-
对于“端口号”,键入 135。
-
对于“说明”,键入说明(如远程调试 DCOM)。
-
(可选)对于作用范围,选择“仅本地子网”。这会限制对防火墙洞(向本地子网上的计算机开放的防火墙洞)的访问。如果可能,请使用此选项。
-
-
单击“确定”关闭“权限”对话框。
步骤 9 到 16 打开 UDP 4500 和 UDP 500 端口,这两个端口均用于 IP 安全。如果您的域策略要求通过 IPSec 进行网络通信,则必须打开这两个端口;否则可以跳过步骤 9 到 16。
-
再次单击“添加”按钮。
-
在“权限”对话框中选择“指定端口”。
-
在“指定端口”下:
-
对于“协议”,选择“UDP”。
-
对于“端口号”,键入 4500。
-
对于“说明”,键入说明(如 UDP 4500 端口)。
-
(可选)对于作用范围,选择“仅本地子网”。这会限制对防火墙洞(向本地子网上的计算机开放的防火墙洞)的访问。如果可能,请使用此选项。
-
-
单击“确定”关闭“权限”对话框。
-
再次单击“添加”按钮。
-
在“权限”对话框中选择“指定端口”。
-
在“指定端口”下:
-
对于“协议”,选择“UDP”。
-
对于“端口号”,键入 500。
-
对于“说明”,键入说明(如 UDP 500 端口)。
-
-
(可选)对于作用范围,选择“仅本地子网”。这会限制对防火墙洞(向本地子网上的计算机开放的防火墙洞)的访问。如果可能,请使用此选项。
步骤 17 到 21 打开文件和打印共享所需端口。
-
在“程序和服务”组中,选择“文件和打印共享”。
-
单击“编辑”按钮。
-
在“权限”对话框中选择以下端口:“TCP 139”、“TCP 445”、“UDP 137”和“UDP 138”。
-
(可选)对于每个端口,选择“仅本地子网”。这会限制对防火墙洞(向本地子网上的计算机开放的防火墙洞)的访问。如果可能,请使用此选项。
-
单击“确定”。
步骤 22 到步骤 28 将 msvsmon 添加到“SP2 例外”列表中,使其在运行时动态打开端口。
-
再次单击“添加”按钮。
-
单击“选择程序”。
-
单击“浏览”按钮。
-
在“浏览”对话框中,导航至 Msvsmon.exe 所在位置,该位置将是以下目录中的一个:
Install path /Microsoft Visual Studio 8/Common7/IDE/Remote Debugger/x86
Install path /Microsoft Visual Studio 8/Common7/IDE/Remote Debugger/x64
Install path /Microsoft Visual Studio 8/Common7/IDE/Remote Debugger/ia64
-
单击“确定”关闭“浏览”对话框。
-
在“说明”框中键入说明。
-
(可选)选择“仅本地子网”。这会限制对防火墙洞(向本地子网上的计算机开放的防火墙洞)的访问。如果可能,请使用此选项。
-
单击“确定”关闭“选择程序”对话框。
-
单击“确定”关闭“Internet 连接防火墙”。
对 Windows 95/98/Me 计算机进行远程调试
若要从启用了 Windows 防火墙的 Windows XP SP2 计算机对 Windows 95/98/Me 计算机进行远程调试,您必须使用 dcomcnfg 为匿名登录启用远程访问。
为匿名登录启用远程访问
-
从 Windows 命令提示处运行 dcomcnfg:
C:/WINDOWS/System32/dcomcnfg
-
在“组件服务”窗口中展开“组件服务”/“计算机”节点。
-
在“组件服务”/“计算机”之下右击“我的电脑”,从快捷菜单中选择“属性”。
-
在“我的电脑属性”窗口中单击“COM 安全”选项卡。
-
在“访问权限”之下单击“编辑限制”按钮。
-
从顶部列表中选择“匿名登录”。
-
从底部列表中选择“远程访问”复选框。
-
单击“确定”。
-
单击“确定”。