【问题标题】:Restart WaWorkerHost on Azure (via RDP)在 Azure 上重新启动 WaWorkerHost(通过 RDP)
【发布时间】:2012-03-23 00:41:29
【问题描述】:

我有一个 Azure 工作者,它在本地运行良好,但在实时结构上崩溃。我想连接一个远程调试器,但我不能,因为在我可以 RDP 并附加一个调试器之前程序崩溃了。

有没有办法在不重启系统的情况下手动重启WaWorkerHost.exe

【问题讨论】:

    标签: azure remote-debugging rdp


    【解决方案1】:

    你可以杀死 WaWorkerHost,它会被 WaHostBootstrapper 自动重启(稍等一下)。


    回复您的评论:

    如果我理解正确,你应该

    • 首先部署一个空工作器(或一个不会崩溃的工作器)
    • 连接到您的角色实例(远程桌面)
    • 然后使用要测试的二进制文件进行部署。

    【讨论】:

    • WaHostBootstrapper 在停止重新启动之前只有有限的重试次数。等我能进去的时候,已经太晚了。
    【解决方案2】:

    关于在 azure 下连接调试器的博客系列(放在这里供其他人参考,我猜你已经做到了)

    http://blogs.u2u.be/peter/post/2011/06/21/Remote-debugging-an-Azure-Worker-role-using-Azure-Connect-Remote-desktop-and-the-remote-debugger.aspx

    现在对于手头的问题,我最想做的是让您的工作人员在启动代码中自行挂起它,直到附加调试器并进行日志记录。

    所以你可以只使用下面的属性和方法。等的时候我也会睡个安稳觉。

            while (!(System.Diagnostics.Debugger.IsAttached && System.Diagnostics.Debugger.IsLogging()))
            {
                System.Threading.Thread.Sleep(1000);
            }
    

    【讨论】:

    • 这不会重新启动服务。它也不允许我处理生产实例。
    • 我在考虑更多的替代方法来重新启动实际工作人员。您在任何代码之前执行此操作,因此它将等待调试器准备好,以便您可以正常附加。您可以在生产实例上执行此操作,前提是它已按照上述文章中的方式进行配置,但不适用于模拟器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 2016-02-11
    • 1970-01-01
    相关资源
    最近更新 更多