【问题标题】:Azure deployment continually recycling since upgrading the June 2012 SDK 1.7自升级 2012 年 6 月 SDK 1.7 以来,Azure 部署不断回收
【发布时间】:2012-07-22 22:26:28
【问题描述】:

我有一个以前成功运行的部署。从那时起,我已升级到 2012 年 6 月的 SDK,当我部署它时,它会不断回收。如果我远程桌面进入实例,我可以手动打开应用程序并运行(没有黄屏死机),所以必须有一些关于部署的东西。

在事件查看器中我看到了错误:

故障应用程序WaHostBootstrapper.exe,版本6.0.6002.18488,时间戳0x4fcaabe9,故障模块ntdll.dll,版本6.0.6002.18520,时间戳0x4e811810,异常代码0xc0000008,故障偏移量0x00000000000b6ff8,进程ID 0% 0x%10。

但这并不是特别有用。我已经用 SDK 1.7 完全重新创建了 Cloud 项目。它是一个 ASP.NET MVC 4 RC 应用程序。

如何查看此错误的确切原因?

【问题讨论】:

  • 您是在 Server 2008 实例还是 2008 R2 实例上运行?我们的 MVC 应用程序和服务器 08 出现问题 -> 更改为 08 R2 并且再也没有问题。在此期间,两个配置都没有在本地模拟器上给我们带来问题。
  • 目前是2008 SP2。我会在 R2 上尝试一下,看看它是否会有所作为。
  • 是的,让我知道。由于我不知道这对我们为什么/如何工作的具体细节,我不想发布作为答案。
  • 我改成R2但没区别。

标签: .net asp.net-mvc azure


【解决方案1】:

根据您的陈述“我已经使用 SDK 1.7 完全重新创建了 Cloud 项目。它是一个 ASP.NET MVC 4 RC 应用程序。”,我不确定 1)您是否真的在使用MVC4.0 RC 位或 2) 您正在使用 MVC 4.5 BETA 位。 MVC 4.0 已经发布,安装 2012 年 6 月 SDK 实际上安装了基于 ASP.NET MVC 4.0 的云模板和二进制文件,因此您必须将 MVC 4.0 的发布位与 Windows Azure 云项目一起使用。如果您使用的是 RC 位,这可能是您的第一个问题。

我过去曾看到完全相同的错误,并在我的博客中描述了此类问题的原因和可能的解决方法:Windows Azure Web Role Error: "Faulting application WaHostBootstrapper.exe

我认为您的包没有必要的 DLL,因此请检查您的部署中缺少哪个 DLL,然后重新部署您的应用程序以解决此问题。

另外,如果您想在默认情况下使用 Windows Server 2008 R2 运行您的应用程序,您可以修改 ServiceConfiguration.cscfg 中的 osFamily=2 (1:Windows Server 2008 SP2, 2:Windows Server 2008 R2) 设置,如下所示进行配置部署时:

<ServiceConfiguration 
    serviceName="<service-name>" 
    xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" 
    osFamily="2" 
    osVersion="*" 
    schemaVersion="2012-05.1.7">

【讨论】:

  • 是的,我使用的是 2012 年 6 月 SDK 以及云模板和二进制文件随附的 MVC 4.0。我没有意识到那是最终版本而不是 RC 版本。
  • 感谢您的确认,RC部分让我不太担心。如果您已发布位,请尝试查看您的包(或 Azure VM 上的 E:\approot\bin 文件夹)以匹配项目中的所有 DLL 是否缺少 DLL。
  • 一个问题是我不确定缺少的 DLL。如果我登录并在回收之间捕获它,我该如何解决这个问题。
  • 不是一个不同的答案,但可能会有所帮助 - 缺少 DLL 可能是由引用辅助角色项目的 Web 角色项目引起的,反之亦然。看到这个答案:stackoverflow.com/questions/14679174/…
【解决方案2】:

升级到 v1.7 后我遇到了同样的问题,但在查看 Azure VM 中的 Windows Azure 日志时,我注意到以下异常:

An unhandled exception occurred. Type: System.ArgumentException Process ID: 2340
Process Name: DiagnosticsAgent
Thread ID: 1
AppDomain Unhandled Exception for role Backend_IN_0
Exception: Endpoint http://xxxx.blob.core.windows.net/ is not a secure connection.

所以我将诊断连接字符串更改为使用 https 而不是 http 和瞧,这解决了我的问题。

希望对你有用,我已经脱了两天头发了。

【讨论】:

    猜你喜欢
    • 2012-06-25
    • 1970-01-01
    • 1970-01-01
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多