9

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

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

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

经过一番搜索,这似乎不是一个超级常见的问题。我忽略了一些可能导致此问题的微不足道的事情吗?您将如何解决此问题?感谢您的时间 :)

4

7 回答 7

5

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

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

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

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

于 2012-06-21T23:41:11.467 回答
2

也被这个角色回收问题困扰了无数次。以下是调试持久角色回收的步骤顺序

调试 Azure 角色回收

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

    通过 Powershell 安装 Azure 调试工具

    PS> md c:\工具;导入模块位传输;Start-BitsTransfer http://dsazure.blob.core.windows.net/azuretools/AzureTools.exe c:\tools\AzureTools.exe; c:\工具\AzureTools.exe

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

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

在此处输入图像描述

于 2016-01-25T05:47:19.130 回答
1

只是一个建议:还要检查可安装(如果有)和您使用的任何其他参考是 64 位的。Azure VM 具有 64 位操作系统。由于 32/64 位问题,一旦我遇到这种问题。

于 2012-08-06T06:12:23.167 回答
1

从上面的Avkash:

是的。这意味着您的 Worker Role 代码中的某些问题导致您的 Worker Role Host Process 崩溃。如果您查看故障堆栈,您必须看到生成此故障的代码中的函数或链接。如果您需要帮助,请向 Windows Azure 支持团队打开免费的 Azure 支持事件,他们会为您提供帮助。

于 2012-06-21T17:07:08.250 回答
1

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

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

于 2012-06-20T15:43:45.407 回答
0

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

于 2014-04-25T19:19:30.110 回答
0

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

于 2012-06-20T15:46:33.473 回答