在Azure上重新启动WaWorkerHost(通过RDP)

问题描述:

我有一个Azure工作器,可以在本地正常工作,但在活动结构上崩溃。我想连接一个远程调试器,但是我不能,因为在我可以使用RDP并连接一个调试器之前程序崩溃了。在Azure上重新启动WaWorkerHost(通过RDP)

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

+0

对此有什么好运? – 2012-06-07 17:05:25

+0

不幸的不是。 – 2012-06-08 02:01:21

对下湛蓝的连接调试一个博客系列(把这里的其他人引用我猜你已经走到这一步)现在

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

手头上的问题我会surgest做的是让你的工作人员在启动代码中自行挂起,直到调试器被连接并记录。

所以你可以使用下面的属性和方法。等待时我也会睡觉。

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

这不会重新启动服务。它也不允许我在生产实例上工作。 – 2012-03-05 16:44:45

+0

我正在考虑更多的重新启动实际工人的替代方案。您在执行任何代码之前都会这样做,因此它将等待调试器准备就绪,以便您可以正常连接。您可以在生产实例上执行此操作,只要它已经在上面的文章中进行了配置,这不适用于仿真器。 – Dreamwalker 2012-03-06 08:59:12

你可以杀死WaWorkerHost,它会被WaHostBootstrapper自动重启(只需要一分钟)。


响应您的评论:

如果我理解正确的话,你应该

  • 首先部署空的工人(或一个不崩溃)
  • 连接到您的角色实例(远程桌面)
  • 然后部署您想要测试的二进制文件。
+0

WaHostBootstrapper在重新启动之前只有有限的重试次数。当我进入时,它已经太晚了。 – 2013-02-25 19:22:48