繁体   English   中英

关于 MSVSMON.EXE 的 Visual Studio 调试错误似乎没有运行

[英]Visual Studio debug error about MSVSMON.EXE not appear to be running

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

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

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

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

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

当我在我的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。

我正在运行Proxifier添加规则到路由:: 1(IPV6环回)直接而不是通过代理。

IPV6 Visual-Studio调试修复

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

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

这里有几件事要尝试:

对我来说,由于某种原因,我的项目URL(在项目属性中)被另一个团队成员的设置覆盖了。 我只需要把它还给我:

在此输入图像描述

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

运行应用程序时,尝试选择'Local Machine' 看起来选择Remote Machine进行调试。

在此输入图像描述

另请在MSDN上检查此错误的详细信息

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

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

我也有这个问题。

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

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

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

试试这个:

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

步骤2->单击附加进程并输入您在visual studio的“限定符”列中的“远程调试器”窗口中获得的相同服务器名称,然后单击“刷新”。

在此输入图像描述

步骤3->现在从列表中附加您的进程。它将工作。

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

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

重新启动路由器后我才遇到这个问题。

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

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

如果您因为Azure问题来到这里,请检查一下:

尝试手动附加调试器:

我已经概述了以下答案中的步骤:

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

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

它应该工作。

这对我有用:

1)在修复Visual Studio之前,请勿更改机器上的任何内容并尝试步骤#2。

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

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

“使用远程机器”

并输入一些名称(如果机器存在则无关紧要)

保存设置,使用配置运行,并在发生错误后再次取消选中“使用远程计算机”。

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

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

今天我在C#项目中遇到了这个问题,当时我在表单中添加了一个linkLabel来访问一个网页。

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

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

我也有同样的问题..我在使用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

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

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

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

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

问题的根本原因并不总是相同,因此这是一个有用的检查列表(我假设在项目设置中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 计算机无法解析远程调试设置中指定的主机名

    在项目设置Configuration Properties -> Debugging -> Remote Server Name 中,将主机替换为其 IP 地址(如果msvsmon.exe进程正在侦听与默认端口不同的端口,则使用相关端口。请参阅此处的默认端口是什么您的 VS 版本)。

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

    远程调试器至少需要这些端口4020,4021,135445。 好像事情还不够复杂,默认端口并不总是 4020,而是每个 VisualStudio 版本都会发生变化(例如在 VS2019 中是 4024)。 看看这里 检查端口是否打开以及两端通信是否正常的最简单有效的方法是在两台计算机上安装nmap 注意, ncCygwin的命令是一样执行的netcat,是不是我们的测试非常有用。 在需要运行远程调试器的计算机上运行此命令(测试期间不要运行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 版本进行更改。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM