5

我正在开发一个 Azure Web 应用程序。代码在我的本地机器上编译并运行良好。但是当我在 Azure 平台上上传包时,webrole 不会启动并给出忙碌状态并显示消息:“等待角色启动...系统正在初始化。[2012-04-30T09:19:08Z]”

Onstart() 和 Run() 都不包含任何代码。我不会阻止 OnStart 的返回。

但是我在javascript中使用window.setInterval。javascript 函数每 10 秒从数据库中检索一次值。

可以做些什么来解决这个问题?

4

3 回答 3

10

在角色(Web 或 Worker)卡住的大多数情况下,我发现以下步骤非常有用:

  1. 始终为您的角色添加 RDP 访问权限,因为在某些情况下,当角色卡住时,您仍然可以对您的实例进行 RDP 并自行调查问题。在某些情况下,您无法 RDP 到您的实例,因为依赖服务尚未准备好让您进入。因此,如果您启用了 RDP 或可以 RDP 到您的实例,请尝试让您登录。

  2. 一旦您的实例具有 RDP。获取本地机器 IP 地址并直接在浏览器中启动。在内部 IP 地址从 10.xxx 开始,因此您可以根据您的端点配置打开浏览器,即http://10.xxx:80https://10.xxx:443

  3. 如果您无法通过 RDP 进入实例,那么最好的办法是获取诊断信息以了解问题所在。诊断信息在您的实例中收集并发送到 Azure 存储,由您在 WebRole.cs(在 Web 角色中)或 WorkerRole.cs(在 Worker 角色中)代码中配置。诊断在你的角色中发挥作用后,你可以在配置的 Azure Blob/表存储中收集诊断数据以了解问题。

  4. 如果您没有 RDP 访问权限并且没有配置任何 Azure 诊断(或无法获取任何诊断数据来了解问题),最好的办法是通过以下链接联系 Azure 支持团队(24x7 通过网络或电话)他们将有能力访问您的实例(在您的许可下)并为您提供根本原因。

https://support.microsoft.com/oas/default.aspx?gprid=14928&st=1&wfxredirect=1&sd=gn

联系 Azure 支持时,请提供您的订阅 ID、部署 ID、您的 Azure 真实帐户 ID 和您的问题的简短描述。

于 2012-04-30T15:54:10.257 回答
3

要检查的两件事:

  1. 确保您的诊断连接字符串指向真实帐户,而不是开发存储
  2. 检查 web.config 中的会话状态提供程序。默认情况下,它指向Windows Azure 中不存在的SQL Express LocalDB。
于 2012-04-30T11:25:41.447 回答
0

我遇到最多的原因是程序集丢失或无效。但是有几个很棒的帖子可以帮助解决这个问题,所以我自己不会深入探讨这个问题。

http://social.msdn.microsoft.com/Forums/en-US/windowsazuretroubleshooting/thread/6c739db9-4f6a-4203-bbec-eba70733ec16

http://blogs.msdn.com/b/tom/archive/2011/02/25/help-with-windows-azure-role-stuck-in-initializing-busy-stopped-state.aspx

http://blogs.staykov.net/2009/12/windows-azure-role-stuck-in.html

于 2012-04-30T15:01:47.943 回答