我们有一个在Azure标准中型应用服务计划中运行的ASP.NET MVC网站。
有时候工作流程会在没有警告的情况下被回收。
我在Application_End
的{{1}}添加了代码,以记录global.asax.cs
。
记录的原因是HostingEnvironment.ShutdownReason
,据我所知,这意味着托管环境启动了关闭。
没有记录任何应用程序错误或事件。 “应用程序设置”中的“始终开启”设置为“开”。
如何确定关机的根本原因?
答案 0 :(得分:1)
我对Azure不太熟悉,所以这可能并不相关,但默认情况下,IIS每29小时回收一次应用程序池,除非您另有说明。
更多信息here。
答案 1 :(得分:0)
您是否有机会在网络日志中发现任何500.121错误?我遇到了w3wp进程内部死锁的问题,导致暂时没有I / O.事实证明,在任何没有I / O的过程中,天蓝色猛击大门4分钟。
日志中的条目会跳出来。通常列出的大多数W3C属性都是空的(包括客户端IP!)
结束了代码错误。
答案 2 :(得分:0)
按照here所述添加更详细的关机原因记录后, 我发现了以下详细信息:
"Shutdown message: Change Notification for critical directories.
File Change Notification Error in App_LocalResources
HostingEnvironment initiated shutdown
Change Notification for critical directories.
File Change Notification Error in App_LocalResources
Change Notification for critical directories.
File Change Notification Error in App_LocalResources
Change Notification for critical directories.
File Change Notification Error in App_LocalResources
Change Notification for critical directories.
File Change Notification Error in App_LocalResources
Change Notification for critical directories.
File Change Notification Error in App_LocalResources
Change Notification for critical directories.
File Change Notification Error in App_LocalResources
Change Notification for critical directories.
File Change Notification Error in App_LocalResources
CONFIG change
CONFIG change
这让我相信Azure中发生了一些暂时性问题,导致ASP.NET更改通知失败,从而触发应用程序重新启动。 this question中描述了类似的问题。
作为一种解决方法,我已将fcnMode = "disabled"
添加到web.config中的httpRuntime
元素。根本原因仍然未知。链接问题中接受的答案表明,该案例的原因是北欧数据中心的SMB错误。必须有其他原因,因为我差不多3年后在美国东部数据中心遇到过这个问题。