【问题标题】:Visual Studio debug error about MSVSMON.EXE not appear to be running关于 MSVSMON.EXE 的 Visual Studio 调试错误似乎没有运行
【发布时间】:2013-10-21 07:33:04
【问题描述】:

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

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

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

我正在使用 Visual Studio 2012 Update 2。

【问题讨论】:

    标签: c# visual-studio debugging visual-studio-2012


    【解决方案1】:

    在运行应用程序时尝试选择'Local Machine'。似乎选择了远程机器进行调试。

    同时在MSDN上查看此错误的详细信息

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

    【讨论】:

    • 我在工具栏上找不到这样的菜单!?它到底在哪里?
    • @mehrandvd:- 如果您看不到标准工具栏,请单击查看菜单,指向工具栏,然后单击标准。这有帮助吗:- msdn.microsoft.com/en-us/library/windows/apps/… ?
    • 我的意思是我的菜单只有一个名为“开始”的选项,上面没有列出其他选项。
    • 开始菜单上有哪些可用选项?您必须具有管理员权限!
    • 那里没有可用的选项。也许这些选项适用于 Wpf 应用程序或 WinForm 以外的应用程序...
    【解决方案2】:

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

    【讨论】:

    • Tee 这类听起来很愚蠢的东西通常是最好的解决方案。重新启动VS解决了我的问题。谢谢!
    【解决方案3】:

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

    【讨论】:

    • 谢谢老兄。它完美无缺。虽然必须注意,关闭 Proxifier 后需要重新启动 Visual Studio,否则会一直报同样的错误!
    • 你能说得更具体一点吗(Proxifier)?它和我的VS 2015 Community 有什么关系?最后我检查了没有这样的问题。现在,当我启动系统时,我不断收到此错误。我正在尝试使用Local IIS
    • @barnes:找到解决方案了吗?
    • 我同样关闭了我的 Cisco VPN 连接并且可以成功运行。
    【解决方案4】:

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

    【讨论】:

    • 另外,如果您使用的是本地虚拟机并且有主机条目,并且由于某种原因您的 IP 地址随着 DNS 更新而更改,这可能是您的答案。
    • 谢谢。因为我总是忘记切换我的主机条目,所以我开始做这件事有点不同。我将为 local.mydomainname.com 添加一个主机条目到 127.0.0.1 并将 VS 和我的本地 IIS 指向它。然后我仍然可以浏览到 www.mydomainname.com 并获取实时站点进行比较。
    • 我的主机之前设置为静态 IP,但我最近把我的工作站带回家,现在使用 vpn。将主机更新为新 IP 后,问题就解决了。由于 dhcp,我可能每天都必须更新它?
    【解决方案5】:

    这里有几件事可以尝试:

    出于某种原因,我的项目 URL(在项目属性中)被其他团队成员的设置覆盖。我只需要把它还给我:

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

    【讨论】:

    • @SenjutiMahapatra,很高兴我能帮上忙 :)
    【解决方案6】:

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

    【讨论】:

    • 在 googlesphere 上上下下好几天了,一个 4 岁的小费帮了大忙。错过了一个真正的男人记住他所有答案的时间...... ^_^
    【解决方案7】:

    你可以直接去调试设置,勾选调试选项卡中的复选框

    “使用远程机器”

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

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

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

    【讨论】:

      【解决方案8】:

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

      【讨论】:

      • 谢谢,为我工作。注意:设置此规则后需要重启Visual Studio。
      【解决方案9】:

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

      【讨论】:

      • 在我的 windows 7 64 位 VS2013 上发现有帮助
      【解决方案10】:

      我也遇到过这个问题。

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

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

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

      【讨论】:

        【解决方案11】:

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

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

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

        【讨论】:

          【解决方案12】:

          如果您是因为 Azure 问题来到这里的,请查看:

          尝试手动附加调试器:

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

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

          【讨论】:

            【解决方案13】:

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

            它应该可以工作。

            【讨论】:

              【解决方案14】:

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

              【讨论】:

                【解决方案15】:

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

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

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

                【讨论】:

                  【解决方案16】:

                  这对我有用:

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

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

                  【讨论】:

                    【解决方案17】:

                    我也遇到了同样的问题。我在使用 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

                    【讨论】:

                      【解决方案18】:

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

                      【讨论】:

                        【解决方案19】:

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

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

                        【讨论】:

                          【解决方案20】:

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

                          【讨论】:

                            【解决方案21】:

                            试试这个:

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

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

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

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

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

                            【讨论】:

                              【解决方案22】:

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

                              1. VS 以管理员权限运行

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

                                set-mppreference -EnableNetworkProtection 0

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

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

                              3. VS电脑无法连接到运行远程调试器的电脑

                                远程调试器至少需要这些端口4020,4021、135445。好像事情还不够复杂,默认端口并不总是 4020,而是随每个 VisualStudio 版本而变化(例如,在 VS2019 中为 4024)。看看here。检查端口是否打开以及两端之间的通信是否正常工作的最简单有效的方法是在两台计算机上安装nmap。请注意,cygwin 中的nc 命令与 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 版本进行更改。

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

                              【讨论】:

                                猜你喜欢
                                • 1970-01-01
                                • 1970-01-01
                                • 1970-01-01
                                • 1970-01-01
                                • 1970-01-01
                                • 1970-01-01
                                • 2011-02-16
                                • 2011-01-16
                                • 2019-12-01
                                相关资源
                                最近更新 更多