46

我有一个程序,当我按 F5 运行该程序时,它显示此错误并且不运行:

尝试运行项目时出错,无法启动程序“F:....”Microsoft Visual Studio 远程调试监视器 (MSVSMON.EXE) 似乎没有在远程计算机上运行...

这是该项目之前成功编译的时间。是否有任何项目设置有时应该以错误的方式设置!?

我正在使用 Visual Studio 2012 更新 2。

4

22 回答 22

39

我发现原因不是降级!这是关于一个名为“Proxifier”的隧道软件。当它在系统上运行时,它会导致 Visual Studio 出现此问题。

于 2013-10-27T07:02:06.013 回答
25

当我的 HOSTS 文件中有一个条目可以在本地运行该站点时,我就发生了这种情况,但是我随后将其注释掉以使我能够实时查看。

例如 - 实时站点在http://my.url.com上运行

在 Web 选项卡上 Web 项目的属性中的 VS 中,我将项目 URL 设置为上述。当我想在本地调试时,我将以下内容放在我的 HOSTS 文件中

127.0.0.1    my.url.com

当我完成并且我想恢复生活时,我将其注释掉

#127.0.0.1    my.url.com

如果将来我需要再次调试,VS 会尝试针对实时服务器进行调试,而不是将请求通过 HOSTS 条目路由回 localhost。

于 2013-12-18T10:42:48.120 回答
9

如果您正在运行 Proxifier,请添加一条规则以直接路由 ::1(IPV6 环回),而不是通过代理。

IPV6 Visual-Studio 调试修复

于 2015-05-07T13:57:50.423 回答
6

IIS >> 应用程序池 >> 选择池 >> 高级设置 >> 启用 32 位应用程序 = true。它对我有用。

于 2014-09-03T05:10:36.407 回答
5

您一定是误杀了 msvmon 进程。我知道这听起来很愚蠢,但请尝试重新启动 VS,如果这不起作用,请尝试重新启动机器。但我注意到,当我们运行 VS 时,msvmon 进程将在后台运行。

于 2013-10-13T18:13:22.603 回答
4

这里有几件事可以尝试:

对我来说,由于某种原因,我的项目 URL(在项目属性中)被其他团队成员的设置覆盖了。我只需要将它设置回我:

在此处输入图像描述

如果您还没有运行它,您也可以尝试将您的服务器设置为使用 IIS Express。

于 2014-05-28T15:28:10.313 回答
3

'Local Machine'运行应用程序时尝试选择。看起来远程机器被选中进行调试。

在此处输入图像描述

还要在MSDN上查看此错误的详细信息

当您尝试进行远程调试时,您可能会收到此错误消息。这意味着 Visual Studio 在远程计算机上找不到 Visual Studio 远程调试监视器的实例。远程调试工作需要 Visual Studio 远程调试监视器。

于 2013-10-13T17:52:22.987 回答
3

我也有这个问题。

解决方案是将主机文件中的计算机主机名条目更正为正确的 IP。

背后的故事:我最初将条目放在 hosts 文件中,因为 VS 需要大约 1 分钟(是的 60 秒)才能进入调试模式。我发现在我的 hosts 文件中添加一个包含我的 PC 的 IP 及其主机名的条目会导致 VS 在 1-2 秒内进入调试模式!

可能还值得一提的是,我在属性页 -> 开始选项中将 VS 配置为“不要打开页面。等待...”和“用户自定义服务器”,并将“基本 URL”设置为我本地的网站IIS

于 2015-08-28T09:29:29.290 回答
3

我经常在 64 位 PC 上的 VS 2013 和 Windows 8.1 上使用它。如果您转到启动项目,打开项目属性,转到“构建”选项卡并将“平台目标”从“任何 CPU”更改为“x86”,它就会消失。

于 2015-08-22T07:46:36.450 回答
2

尝试这个:

步骤 1-> 转到 Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Remote Debugger\x64 并以管理员身份运行 msvsmon.exe。然后您将看到一个窗口,说明 Msvsmon 启动了一个名为 **** 的新服务器*。在此处输入图像描述

步骤 2-> 单击附加进程,然后在 Visual Studio 的限定符列的远程调试器窗口中输入相同的服务器名称,然后单击刷新。

在此处输入图像描述

第 3 步-> 现在从列表中附加您的流程。它将起作用。

注意:VS 中的限定符值和远程调试器中的服务器名称必须匹配

如果它不起作用,则在后台停止远程调试器进程并重新执行这些步骤

于 2018-03-16T14:50:22.603 回答
1

如果它是一个 Web 应用程序,只需转到您的项目正在使用的应用程序池,右键单击Advanced Settings,,启用32-Bit Application = true

它应该工作。

于 2016-03-07T06:22:47.197 回答
1

这对我有用:

1) 不要更改机器上的任何内容,并在修复 Visual Studio 之前尝试第 2 步。

2) 以管理员身份启动 Visual Studio。然后打开您的解决方案并尝试调试。

于 2017-03-14T17:35:33.297 回答
1

当您尝试在 IIS 而不是 IIS express 上运行项目并且您的 Visual Studio 无法连接到 IIS 上的网站时,会发生这种情况。

如果您的网站未绑定到 localhost 并且您已提供域名绑定,则需要确保您的主机文件(Run->drivers->etc->hosts)有一个指向该域名的条目。

于 2017-05-26T08:40:55.140 回答
1

如果您是因为 Azure 问题而来到这里的,请查看以下内容:

尝试手动附加调试器:

我在以下答案中概述了步骤:

https://stackoverflow.com/a/35738995/1057052

于 2016-03-02T05:14:29.453 回答
1

为您的调试配置执行此操作。但取消选中发布配置。 以 32 位运行

于 2017-04-24T19:09:31.890 回答
1

我只是在重新启动路由器后遇到了这个问题。

事实证明,重新启动再次分配了我的设备 IP 地址,但顺序不同。例如,在我的 Hosts 文件中,我的 IP 地址为 192.168.0.3,但当我在命令提示符下使用 ipconfig 再次检查时,IP 地址为 192.168.0.4。

因此,如果您遇到此问题,请检查 Hosts 文件中的 IP 地址是否与您当前的 IP 地址匹配,因为它可能已更改!

于 2016-01-17T20:53:31.730 回答
0

您可以转到调试设置,选中调试选项卡中的框

“使用远程机器”

并输入一些名称(机器是否存在无关紧要)

保存设置,使用配置运行,然后在出现错误后再次取消选中“使用远程机器”。

Visual Studio 将再次将调试设置为本地调试,这应该可以解决问题。我认为这比关闭程序或更改不是根本原因的设置要好。

于 2015-05-02T14:15:04.390 回答
0

由于我选择的目标架构 (x64),我在尝试将 JavaScript UWP 应用部署到 Xbox One 时遇到了这个问题。将此更改为任何 CPU允许我部署到控制台。

于 2016-05-15T10:13:18.677 回答
0

我也遇到了同样的问题。我在使用 Visual Studio 2012 Update 5 时遇到了这个问题。

以下链接对可能发生此错误的不同场景提供了更好的解释。 https://msdn.microsoft.com/en-us/library/ms164726.aspx

Link 说Visual Studio 是一个 32 位应用程序,因此它使用 64 位版本的远程调试器来调试 64 位应用程序。这两个进程使用本地计算机内的本地网络进行通信。没有流量离开计算机,但第三方安全软件可能会阻止通信。

所以我所做的是我打开了防火墙设置。

控制面板-->系统和安全-->Windows防火墙-->允许应用程序通过Windows防火墙进行通信

并将 MSVSMON.exe 添加到允许的应用程序列表中。这对我有用。

注意:您可以在以下位置找到 MSVSMON.exe 文件:

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Remote Debugger\x64

于 2017-04-11T13:19:49.887 回答
0

我今天在一个 C# 项目中发生了这种情况,当时我在表单中添加了一个 linkLabel 以访问网页。

我发现原因是我的主机文件中有一个以太网分路接口(tinc vpn)的条目。我在那里有一个条目,用于在水龙头 IP 地址上我自己的机器的别名。将其注释掉可以让调试器毫无问题地运行。

非常感谢上面关于主机文件的提示;它引导我朝着正确的方向前进!希望这可以帮助别人。

于 2016-08-05T19:04:37.647 回答
0

当我将 devenv.exe 添加到防火墙排除项时,我的问题解决了

于 2017-10-30T09:30:54.820 回答
0

问题的根本原因并不总是相同的,因此这是一个有用的检查列表来执行(我假设在项目设置中Configuration Properties -> Debugging -> Debugger to launch:设置为Remote Windows Debugger):

  1. VS 以管理员权限运行

    在这种情况下,Windows Defender 可能会阻止devenv.exe进程向不同于 127.0.0.1 的 IP 发起通信。如果您无法以普通用户身份运行 VS,请在 Powershell 提示符下尝试此命令(以管理员身份运行)

    set-mppreference -EnableNetworkProtection 0:。

  2. VS计算机无法解析远程调试设置中指定的主机名

    在项目设置中配置属性->调试->远程服务器名称将主机名替换为其IP地址(以及相关端口,如果msvsmon.exe进程正在侦听不同的端口比默认值。请参阅此处,您的 VS 版本的默认端口是什么)。

  3. VS 计算机无法连接到运行远程调试器的计算机远程调试 器至少

    需要这些端口4020、4021、135445。好像事情还不够复杂,默认端口并不总是 4020,而是随每个 VisualStudio 版本而变化(例如,在 VS2019 中为 4024)。看看这里。检查端口是否打开以及两端之间的通信是否正常工作的最简单有效的方法是在两台计算机上安装nmap 。请注意,cygwin中的命令与 NetCat 的实现不同,也不nc对我们的测试有用。在需要运行远程调试器的计算机上运行此命令(测试期间不要运行msvsmon.exe):

    ncat -v -l <host_ip> <port>

    然后在运行 VisualStudio 的计算机上运行此命令:

    ncat -v <host_ip> <port>

    注意host_ip这是运行远程调试器的计算机的 ip . 如果在该主机上接收到连接,则没有防火墙阻止通信。在这种情况下,您应该在远程主机中看到类似这样的内容:Ncat: Connection from xxx您可以对端口40204021重复测试。请注意,端口4020可以在远程调试器界面中更改,并且如前所述,默认端口并不总是4020,而是针对每个 VisualStudio 版本进行更改。

    您可能还需要其他端口来进行身份验证(如果在远程调试器上启用了身份验证)并在远程计算机上部署文件。您可以在运行 VisualStudio 的计算机上运行相同的命令
    ncat -v <host_ip> <port>。并检查以下端口:135445。请注意,在这种情况下,您不需要在远程主机上运行 nmap(服务已经在侦听该端口)。

于 2021-10-14T17:33:18.443 回答