【问题标题】:Azure: there was a failure to launch the remote debuggerAzure:启动远程调试器失败
【发布时间】:2014-01-23 16:45:41
【问题描述】:

我根据以下教程在 Windows Azure 中部署了一个 Web 角色。 http://weblogs.asp.net/scottgu/archive/2013/10/22/windows-azure-announcing-release-of-windows-azure-sdk-2-2-with-lots-of-goodies.aspx

但是当我尝试附加调试器时,我收到以下消息: "启动远程调试器失败"

显然这是一个已知问题,Microsoft 建议的解决方案是重新启动 Visual Studio 并重试,不幸的是这对我不起作用

http://msdn.microsoft.com/en-us/library/windowsazure/dn459835.aspx

远程调试可能无法附加到现有的云服务:

部署新的云服务后,调试器可能无法附加到 现有的云服务,并显示错误消息“出现故障 启动远程调试器”。要更正此问题,请重新启动 Visual Studio 并将调试器重新附加到新部署。

所以我想在这里问一下,以防有人遇到同样的问题并找到了除重新启动 Visual Studio 之外的其他解决方案!

我正在使用 Visual Studio 2012 和 Azure SDK 2.2

【问题讨论】:

    标签: c# asp.net-mvc-4 visual-studio-2012 azure azure-web-roles


    【解决方案1】:

    我认为你应该尝试在管理员模式下使用 VS,看看你是否总是遇到同样的问题。

    否则,我认为您应该详细说明您的问题。

    【讨论】:

    • 不幸的是我处于管理员模式...实际上我正在尝试搜索更多详细信息,因为消息不清楚
    • @KhaledHamdy,有时我在 Azure 中遇到一些错误,并且在我重新启动计算机之前一直存在这些错误。根据您在上面发布的 msdn 解释,我也应该重新启动 VS 并拥有新的部署。祝你好运:(
    • 感谢斯威夫特,但不幸的是我重新启动了一切,但仍然一样:(
    【解决方案2】:

    确保您已将调试版本部署到您的 Web 角色,并且您已在部署期间选中高级选项卡上的“为所有角色启用远程调试”。不执行其中任何一项都可能导致您看到的问题。

    【讨论】:

    • 非常感谢,但不幸的是我这样做了,但还是一样
    • 真的有必要使用 Debug 构建配置而不是基于 Debug 设置的自定义构建配置(例如开发、测试)吗?
    【解决方案3】:

    我使用的是 Azure SDK 2.2,以便使用“附加调试器”,但不幸的是我需要使用 SDK 2.1,因为 2.2 需要一些 2.1 中未包含的引用,所以我想这就是问题所在。

    谢谢大家的帮助

    【讨论】:

      【解决方案4】:

      我尝试了上述所有解决方案,发现没有一个对我有用。我的问题原来是 VS 调试器用来连接到服务的过时或无法访问的证书。我通过访问事件查看器发现这是问题所在:

      尝试访问 SSL 客户端时发生致命错误 凭证私钥。密码返回的错误码 模块为 0x8009030D。内部错误状态为 10003。

      我在私钥权限方面遇到了其他问题,因此我最终从我的个人存储(当前用户)中删除了所有证书,其中“颁发给”等于“Windows Azure 工具”。当我重新部署我的服务时,VS 创建了新证书并上传了它们。

      瞧——附加远程调试器再次工作。

      【讨论】:

        【解决方案5】:

        按照Debugging Azure Virtual Machines 中的指南,尝试在 Azure 中远程调试 VM 时遇到了同样的异常。

        对我有用的是简单地安装与我的 Visual Studio 版本(VS2013 Update2)匹配的远程调试工具。

        此外,我还必须在 Azure 门户中添加一个新端点。这最初不起作用,但最终使用相同的公共和私有端口号成功了。默认端口 4018 有效。

        在客户端机器上以管理员模式启动远程调试程序并记住设置为端口号,例如到 4018。我也选择了 Windows 身份验证。

        从 Visual Studio 中:调试菜单 -> 附加到进程 -> [yourVMName].cloudapp.net:4018 或您选择的任何端口号。您现在应该会看到虚拟机上的进程列表。

        【讨论】:

        • 这是否意味着完全不可能在服务器资源管理器中从 Azure 节点附加调试器?我不断收到错误消息,还没有弄清楚确切的原因是什么。我已经为端口 4016、4017、4018 尝试了额外的 InputEndpoints,但无济于事。无论如何,在服务器(工作者角色)中看不到任何侦听这些端口的内部进程。
        【解决方案6】:

        这是我在 Azure VM 上启用调试的方法。

        在撰写本文时,我当前的设置如下

        • Windows Server 2012 R2 IIS 8.5(虚拟机)
        • Visual Studio 2013 更新 4
        • 微软 Azure SDK 工具 2.5

          1. 将 Visual Studio 更新到最新的 Azure SDK
          2. 进入服务器窗口(服务器资源管理器)
          3. 扩展 Azure 节点
          4. 扩展虚拟机节点
          5. 右键单击要调试的 VM
          6. 选择“启用调试”Visual Studio 将开始向您的虚拟机添加调试器扩展
          7. 完成后,从虚拟资源管理器中右键单击虚拟机并选择附加调试器

        【讨论】:

          【解决方案7】:

          万一它对其他人有帮助,我只花了 3 个小时在这上面!最后我放弃并使用“云资源管理器”(在 VS 2013 中,安装 Azure SDK 后)我选择了“禁用调试”并注意到它清除了虚拟机网络安全组中的端口规则。

          我没有看到它设置了这些(我花了几个小时猜测这些是问题所在,并试图从不完整的 MS 文档、断开的链接等中找出它们)。

          所以,我为虚拟机“启用调试”并看到它设置了安全规则——这是它第一次没有做的事情!

          猜测这是因为我在将 Azure SDK 安装到 VS 后不久就为我的 VM 启用了调试。从那以后我重新启动了 VS 服务器,这可能在 SDK 中启用了某些功能。

          无论如何 - 在花费数小时确定端口之前,重新启动 VS 服务器,然后在 Cloud Explorer 中禁用/重新启用调试 - 您应该会看到一条状态消息(在 Azure 活动日志中)显示“正在配置网络安全组调试端口” - 这个这是它第一次没有做的神奇步骤。

          【讨论】:

            猜你喜欢
            • 2018-07-31
            • 1970-01-01
            • 2017-01-30
            • 2019-05-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-02-06
            • 1970-01-01
            相关资源
            最近更新 更多