Unable to Connect to the Microsoft Visual Studio Remote Debugging Monitor
出现此消息的原因可能是远程计算机上的远程调试监视器未正确设置,或者由于网络问题或存在防火墙而导致远程计算机不可访问。
详细的错误消息是什么?
Unable to Connect to the Microsoft Visual Studio Remote Debugging Monitor
是通用消息。 通常情况下,更具体的消息包含在错误字符串,也许能够帮助你确定问题或搜索更精确的修补程序的原因。 下面是几个附加到主错误消息的更常见的错误消息:
- 调试器无法连接到远程计算机。 调试器无法解析指定的计算机名
- 远程调试器拒绝了连接请求
- 与远程终结点的连接已终止
- 对内存位置的访问无效
- 远程计算机上没有运行指定名称的服务器
- 请求的名称有效,但找不到请求的类型的数据
- 目标计算机上的 Visual Studio 远程调试器无法重新连接到此计算机
- 访问被拒绝
调试器无法连接到远程计算机。 调试器无法解析指定的计算机名
请尝试以下步骤:
请确保在“附加到进程”对话框或项目属性中输入有效的计算机名和端口号(若要设置属性,请参阅这些步骤)。 计算机名必须为以下格式:
computername:port
注意
端口号必须与远程调试器端口号匹配,调试器必须在目标计算机上运行。
如果计算机名不起作用,请改为尝试 IP 地址和端口号。
请确保在目标计算机上运行的远程调试器的版本与 Visual Studio 的版本匹配。 若要获取远程调试器的正确版本,请参阅远程调试。
提示
如果要附加到进程,而在成功连接后没有看到所需的进程,请选中“显示所有用户的进程”复选框。 如果你使用不同的用户帐户进行连接,这样做会显示出进程。
如果这些步骤不能解决此错误,请参阅无法访问远程计算机。
远程调试器拒绝了连接请求
在“附加到进程”对话框或项目属性中,请确保远程计算机名和端口号与远程调试器窗口中显示的名称和端口号匹配。 如果不正确,请修复,然后重试。
如果这些值正确,并且消息提及“Windows 身份验证”模式,请检查远程调试器是否处于正确的身份验证模式(“工具”>“选项”)。
与远程终结点的连接已终止
如果要调试 Azure 应用服务应用,请尝试按照远程调试 Azure 上的 ASP.NET Core 中的说明连接到 Azure 应用服务。
如果使用“附加到进程”进行调试:
在“附加到进程”对话框或项目属性中,请确保远程计算机名和端口号与远程调试器窗口中显示的名称和端口号匹配。 如果不正确,请修复,然后重试。
如果尝试使用主机名进行连接,请改为尝试 IP 地址。
检查服务器上的应用程序日志(Windows 上的事件查看器),获取更多详细信息以帮助解决问题。
否则,请尝试通过管理员权限重启 Visual Studio,然后重试。
对内存位置的访问无效
发生内部错误。 重启 Visual Studio,然后重试。
远程计算机上没有运行指定名称的服务器
Visual Studio 无法连接到远程调试器。 出现此消息的原因可能有多种:
远程调试器可能使用不同的用户帐户运行。 请参阅这些步骤
端口在防火墙上被阻止。 请确保防火墙不会阻止你的请求,尤其是在使用第三方防火墙时。
远程调试器版本与 Visual Studio 不匹配。 若要获取远程调试器的正确版本,请参阅远程调试。
请求的名称有效,但找不到请求的类型的数据
远程计算机存在,但 Visual Studio 无法连接到远程调试器。 出现此消息的原因可能有多种:
DNS 问题正在阻止连接。 请参阅这些步骤。
远程调试器可能使用不同的用户帐户运行。 请执行这些步骤。
端口在防火墙上被阻止。 请确保防火墙不会阻止你的请求,尤其是在使用第三方防火墙时。
远程调试器版本与 Visual Studio 不匹配。 若要获取远程调试器的正确版本,请参阅远程调试。
目标计算机上的 Visual Studio 远程调试器无法重新连接到此计算机
远程调试器可能使用不同的用户帐户运行。 在远程调试器中,打开“工具”>“权限”将此用户添加到远程调试器权限。 有关详细信息,请参阅远程调试器使用不同的用户帐户运行。
如果错误消息也提到了防火墙,可能是本地计算机上的防火墙正在阻止从远程计算机到 Visual Studio 的通信。 请参阅这些步骤。
访问被拒绝
如果尝试从 32 位计算机在 64 位远程计算机上进行调试,则可能会看到此错误。
原因及建议
远程计算机不可访问
如果无法使用远程计算机名进行连接,请改为尝试使用 IP 地址。 可以在远程计算机上的命令行中使用 ipconfig
来获取 IPv4 地址。 如果你使用 HOSTS 文件,请确保配置正确。
如果此操作失败,请验证是否可以通过网络访问远程计算机(ping 远程计算机)。 不支持通过 Internet 进行远程调试,在某些 Microsoft Azure 场景下除外。
服务器名称不正确,或者第三方软件正在干扰远程调试器
在 Visual Studio 中查看项目属性,并确保服务器名称正确无误。 请参阅 C# 和 Visual Basic 和 C++ 的主题。 对于 ASP.NET,请打开“属性”/“Web”/“服务器”或“属性”/“调试”,具体取决于你的项目类型 。
注意
如果要附加到进程,则不会使用项目属性中的远程设置。
如果服务器名称正确,可能是你的防病毒软件或第三方防火墙在阻止远程调试器。 在本地调试时,因为 Visual Studio 是一个 32 位应用程序,所以它使用 64 位版远程调试器来调试 64 位应用程序,因此可能发生此错误。 32 位和 64 位进程使用本地计算机内的本地网络进行通信。 计算机会持续进行网络通信,但第三方安全软件可能会阻止通信。
远程调试器使用不同的用户帐户运行
默认情况下,远程调试器只接受来自启动远程调试器的用户和管理员组成员的连接。 必须向其他用户显式授予权限。
可通过下列方法之一解决此问题:
将 Visual Studio 用户添加到远程调试器权限(在远程调试器窗口选择“工具”>“权限”)。
在远程计算机上,使用在 Visual Studio 计算机上使用的同一用户帐户和密码重启远程调试器。
注意
如果要在远程服务器上运行远程调试器,请右键单击远程调试器应用,然后选择“以管理员身份运行”(或者将远程调试器作为服务运行)。 如果未在远程服务器上运行,正常启动它即可。
可以使用 /allow <username> 参数
msvsmon /allow <username@computer>
从命令行启动远程调试器。或者可以允许任何用户进行远程调试。 在远程调试器窗口中,转到“工具”>“选项”对话框。 选中“无身份验证”后,可选中“允许任何用户进行调试”。 但仅当你别无选择或在专用网络上操作时才应使用此选项。
远程计算机上的防火墙不允许对远程调试器的传入连接
Visual Studio 计算机上的防火墙和远程计算机上的防火墙都必须配置为允许在 Visual Studio 和远程调试器之间进行通信。 有关远程调试器使用的端口的信息,请参阅 Remote Debugger Port Assignments。 有关配置 Windows 防火墙的信息,请参阅 Configure the Windows Firewall for Remote Debugging。
远程调试器的版本不匹配 Visual Studio 的版本
在本地运行的 Visual Studio 的版本必须与远程计算机上运行的远程调试监视器的版本匹配。 若要解决此问题,请下载并安装匹配的远程调试监视器版本。 若要获取远程调试器的正确版本,请参阅远程调试。
本地和远程计算机具有不同的身份验证模式
本地和远程计算机需要使用相同的身份验证模式。 若要解决此问题,请确保这两台计算机使用相同的身份验证模式。 可以更改身份验证模式。 在远程调试器窗口中,转到“工具”>“选项”对话框。
有关身份验证模式的详细信息,请参阅 Windows 身份验证概述。
防病毒软件正在阻止连接
Windows 防病毒软件允许远程调试器连接,但某些第三方防病毒软件可能会阻止它们。 查看你防病毒软件的文档以了解如何允许这些连接。
网络安全策略阻塞远程计算机和 Visual Studio 之间的通信
查看网络安全以确保它没有阻止通信。 有关 Windows 网络安全策略的详细信息,请参阅安全策略设置。
网络太忙无法支持远程调试
你可能需要在另一个时间进行远程调试,或重新安排另一个时间进行网络上的工作。
更多帮助
若要获取更多有关远程调试器的帮助,请打开远程调试器的“帮助”页(远程调试器中的“帮助”>“用法”)。