Azure:工人角色循环通过;回收";

Azure:工人角色循环通过;回收";,azure,azure-storage,azure-table-storage,azure-storage-blobs,azure-worker-roles,Azure,Azure Storage,Azure Table Storage,Azure Storage Blobs,Azure Worker Roles,我目前正在一个Azure项目上工作,该项目100%在本地使用emulator资源。我现在正试图部署一个工作者角色,但我遇到了一个问题,我不知道如何解决 在my Azure portal中部署worker角色时,这两个实例会不断循环“回收” 我可以尝试将RDP添加到该角色中,但在连接关闭之前,我只有大约一分钟的时间四处看看,我假设这是因为回收 经过一些搜索,这似乎不是一个超级常见的问题。是否有一些我忽略的小事可能导致这个问题?您将如何对此进行故障排除?感谢您的时间:)最可能的原因是您缺少一个程序集

我目前正在一个Azure项目上工作,该项目100%在本地使用emulator资源。我现在正试图部署一个工作者角色,但我遇到了一个问题,我不知道如何解决

在my Azure portal中部署worker角色时,这两个实例会不断循环“回收”

我可以尝试将RDP添加到该角色中,但在连接关闭之前,我只有大约一分钟的时间四处看看,我假设这是因为回收


经过一些搜索,这似乎不是一个超级常见的问题。是否有一些我忽略的小事可能导致这个问题?您将如何对此进行故障排除?感谢您的时间:)

最可能的原因是您缺少一个程序集。捕获此错误的一种策略是将任何启动处理包装在主try/catch中,手动将错误记录到Azure存储


如果添加了任何引用,请检查以确保它们设置为copylocal=true,并且服务包中包含的任何外部资产也设置为包含

您的工作者角色是否正在退出其工作循环?本地循环非常快,您可能不会注意到,但云中的加速时间可能很长。

来自上面的Avkash:


对。这意味着工作人员角色代码中的某些问题导致工作人员角色主机进程崩溃。。如果查看故障堆栈,则必须看到生成此故障的代码中的函数或链接。如果您需要帮助,请向Windows Azure支持团队打开免费的Azure支持事件,他们会帮助您。

如果缺少参考,您可以通过以下方式解决此问题:

解压您的CSPKG文件,然后再次解压.CSSX文件(只需将CSSX重命名为zip),并匹配所有引用和静态内容都在那里。。通过这种方式,您可以匹配VM上的内容。另外,在RDP的2分钟窗口中,尝试查找异常的应用程序事件日志并获取它,因为这是找到根本原因的关键

如果您可以在事件日志中看到异常并查找异常,那么您肯定可以找到它的生成位置。您还可以使用Intellitrace,这可能需要您重新部署应用程序


还有一些方法是复制WinDBG并锁定到特定进程,您可以调试它。我不确定您想尝试多少,但只需将WinDBG复制到VM并使用它就足够了(不确定您对WinDBG有多少经验以及您想花费多少时间)。

只是一个建议:同时检查可安装的(如果有)和您使用的任何其他引用是64位的。Azure VM有64位操作系统。有一次,由于32/64位问题,我遇到了此类问题。

如果问题是由启动批处理文件引起的,我已通过编辑实例上的批处理文件停止循环,在开始时包括“退出/b 0”。这将告诉Azure启动成功,然后您就有了诊断问题所需的所有时间,而不会杀死VM。

也多次受到此角色回收问题的困扰:

调试Azure角色回收
  • 启用对角色的远程访问-RDP登录
  • 检查eventvwr.msc(Windows日志->应用程序、应用程序和服务日志->Windows Azure)
  • 查看
    C:\logs
    C:\resources
    Azure文本文件日志
  • 查看
    E:
    F:
    卷中的自定义日志,查看任何自定义角色启动日志
  • 运行并附加到启动进程(下载WinDBG,使用Utils->附加调试器,选择process-WaWorkerHost/waishost等),使用G继续并观察调试器输出中未能加载的程序集

    通过Powershell安装Azure调试工具 PS>mdc:\tools;导入模块bitstransfer;在c:\tools\AzureTools.exe之后启动BitStrans;c:\tools\AzureTools.exe

  • 如果以上所有项目都失败-尝试使用AzureTools宝藏中的其他工具-例如fusion logging等,上述方法将有效

    WinDBG示例输出-未能定位程序集(WAISHOST)

    尝试解压您的CSPKG文件,然后再次解压.CSSX文件(只需将CSSX重命名为zip),并匹配所有引用和静态内容。。通过这种方式,您可以匹配VM上的内容。另外,在2分钟的窗口中,当您使用RDP时,尝试查找应用程序事件日志中的异常并获取它,因为这是找到根本原因的关键。谢谢Avkash。错误是“Faulting application WaWorkerHost.exe”-以前遇到过吗?是的。这意味着工作人员角色代码中的某些问题导致工作人员角色主机进程崩溃。。如果查看故障堆栈,则必须看到生成此故障的代码中的函数或链接。如果您需要帮助,请向Windows Azure支持团队打开免费的Azure支持事件,他们会帮助您。我还将添加此信息作为答案…太好了,感谢您的快速回复。如果我不能弄清楚,我将提交Azure支持事件。我该如何去查看故障堆栈?这需要intellitrace之类的东西吗?我也有同样/类似的问题。查看Azure上的操作日志或通过VS使用诊断监视可能会让您了解一些情况。。。我希望这有帮助。+1对于应用程序事件日志提示。此外,请验证所有外部引用是否为“复制本地”true,这比分析包本身更简单、更有效。