首页 文章

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

提问于
浏览
9

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

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

我可以尝试RDP进入这个角色,但是在连接关闭之前我只有大约一分钟的时间环顾四周,我假设由于回收 .

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

7 回答

  • 1

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

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

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

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

  • 5

    此角色循环问题也多次受到纠缠 . Here is the sequence of steps to debug persistent role recycles

    调试Azure角色重用

    • 启用对您角色的远程访问 - RDP login

    • 检查 eventvwr.msc (Windows日志 - >应用程序,应用程序和服务日志 - > Windows Azure)

    • C:\logsc:\resources 上查看 Azure text file logs

    • 在卷 E:F: 中查看 custom logs ,以查找任何自定义角色启动日志记录

    • 运行AzureTools并附加到启动进程(下载 WinDBG ,使用Utils-> Attach Debugger,选择进程 - 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

    如果上面的所有项目都失败了 - 尝试使用 AzureTools 宝库中的其他工具 - 例如 fusion logging 等,这种方法将起作用!

    WinDBG示例输出 - 无法定位程序集(WaIISHost)

    enter image description here

  • 1

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

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

  • 2

    来自Avkash上面:

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

  • 0

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

  • 1

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

  • 0

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

相关问题