Azure:工作者角色循环“回收”

时间:2012-06-20 15:09:42

标签: azure azure-storage azure-table-storage azure-storage-blobs azure-worker-roles

我目前正在开发一个Azure项目,该项目在本地100%使用模拟器资源。我现在正在尝试部署一个辅助角色,但我遇到了一个我不确定如何排除故障的问题。

在我的Azure门户中部署辅助角色后,这两个实例不断循环“循环”。

我可以尝试将RDP纳入角色,但在连接关闭之前我只有一分钟的时间环顾四周,我假设由于回收。

经过一番搜索后,这似乎不是一个超常见的问题。是否有一些微不足道的东西我可以忽视这可能导致这个问题?您将如何解决此问题?谢谢您的时间:))

7 个答案:

答案 0 :(得分:5)

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

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

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

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

答案 1 :(得分:2)

这个角色循环问题也被多次纠缠不休。 Here is the sequence of steps to debug persistent role recycles

调试Azure角色重新循环

  1. 启用对您角色的远程访问 - RDP登录
  2. 检查 eventvwr.msc (Windows日志 - >应用程序,应用和服务日志 - > Windows Azure)
  3. 查看C:\logsc:\resources
  4. 中的 Azure文本文件日志
  5. 查看卷E:F:中的自定义日志,了解任何自定义角色启动日志记录
  6. 运行AzureTools并附加到启动过程(下载 WinDBG ,使用Utils->附加调试器,选择进程 - WaWorkerHost / WaIISHost等),使用 G 继续并观察组件无法加载的调试器输出。

    通过Powershell安装Azure调试工具

      

    PS> md c:\ tools; Import-Module bittransfer; Start-BitsTransfer http://dsazure.blob.core.windows.net/azuretools/AzureTools.exe c:\ tools \ AzureTools.exe; C:\工具\ AzureTools.exe

  7. 如果上述所有项目都失败了 - 尝试使用 AzureTools 宝库中的其他工具 - 例如融合日志记录等,则上述方法将有效!

    WinDBG示例输出 - 无法找到程序集(WaIISHost)

    enter image description here

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

来自上面的Avkash:

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

答案 4 :(得分:1)

只是一个建议:另外检查可安装(如果有)和你使用的任何其他参考是64位.Azure VM有64位操作系统。一旦我因为32/64位问题而遇到这种问题。

答案 5 :(得分:0)

您的员工角色是否已退出工作循环?本地回收非常快,您可能不会注意到它,但云中的启动时间可能很长。

答案 6 :(得分:0)

如果问题是由启动批处理文件引起的,我已经通过编辑实例上的批处理文件来停止循环,以包含" exit / b 0"在开始。这将告诉Azure启动成功,然后您就可以随时诊断问题,而不会导致虚拟机被杀。