.net - Azure 云服务崩溃(SDK 2.0、OS Fam : 3)

标签 .net asp.net-mvc-3 iis azure azure-cloud-services

我们有一个相当大且复杂的 MVC3 项目在 Azure 中的 .NET 4.0 中运行。

我们遇到的症状是网站变得无响应,然后崩溃。当我们进入管理门户时,所有实例都处于“已停止”状态。

据我了解,这是 IIS 快速故障保护启动并终止应用程序池并且再次重新启动它的行为。

我使用调试诊断工具来捕获云服务中 IIS 实例的内存转储,每次崩溃时,最后的消息是:

[4/2/2014 1:41:52 AM] First chance exception - 0X000006B5 caused by thread with System     
ID: 2856.  DetailID = 3
Script Error
Error Code - 0x800A01CE
Error Source [Microsoft VBScript runtime error]
Error Description [The remote server machine does not exist or is unavailable: 'ServiceState']
Line 104, Column 2

或者

[4/2/2014 12:25:52 AM] First chance exception - 0XE06D7363 caused by thread with System ID: 3292Script Error
Error Code - 0x80070013
Error Source [Unavailable]
Error Description [Unavailable]
Line 1103, Column 4

此外,我得到的异常数量与我的应用程序池中定义的最大失败数量非常相似(如果不相同)。

我尝试过的事情:

  • 在 Azure 模拟器和虚拟机上运行并且不会崩溃
  • 升级到 Azure SDK 2.2 并部署到操作系统系列 4(当前运行 SDK 2.0,操作系统系列:3)
  • 关闭自定义错误
  • 使用 Application_Error() 捕获所有错误

对我来说,似乎有一些异常没有被捕获,导致 IIS 工作进程崩溃,一旦达到 5(我的应用程序池中的最大失败数),它就会崩溃。

如果有人可以阐明这一点或建议我可以尝试的其他方法,我将不胜感激。

最佳答案

您还可以在启动任务中配置快速失败保护,在 powershell 脚本中使用类似的内容

($env:windir + "\system32\inetsrv\appcmd.exe set config /section:system.applicationHost/applicationPools /applicationPoolDefaults.failure.rapidFailProtectionInterval:'00:03:00'  /commit:apphost") | Invoke-Expression

($env:windir + "\system32\inetsrv\appcmd.exe set config /section:system.applicationHost/applicationPools /applicationPoolDefaults.failure.rapidFailProtectionMaxCrashes:'15'  /commit:apphost") | Invoke-Expression

关于.net - Azure 云服务崩溃(SDK 2.0、OS Fam : 3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22800615/

相关文章:

asp.net - web.config 中的 "non-www to www"和 "https"重写规则,但不是 localhost ASP.NET MVC

asp.net - IIS 中未调用 Application_Start

c# - 奇怪的行为 : Catching ThreadAbortException and throwing different exception

ASP.Net MVC 3 : Production environnement

c# - 方法定义参数中的赋值运算符 (=)

c# - 用于单元测试的 ControllerContext.HttpContext 初始化

visual-studio-2010 - 使用 cruisecontrol.net 将 asp.net mvc 部署自动化到文件共享

asp.net-mvc-3 - 迭代时使用 Html.HiddenFor

java - 如何在不访问更大类型的情况下缩放 Int64 值?

c# - 请求 Web 服务 (POST)