我知道在以下情况下会调用Apllication_end:
但我的问题是什么时候它不会被调用? 我知道如果你手动结束w3wp进程或服务器将被严重关闭,它将不会被调用。
还有其他场景吗?
谢谢!
答案 0 :(得分:2)
你的问题的答案基本上已经在你的问题中。只要托管您的Web服务的进程正常关闭,就会调用Application_End。
唯一一次会发生这种情况:
如果进程突然终止(即杀死w3wp进程),它将无法运行。
答案 1 :(得分:2)
似乎残酷的关闭可能是由OutOfMemoryException导致的,导致执行请求所需的AppDomain失败。 在这种情况下,不会调用Application_end。
事件类型:错误
事件来源:ASP.NET 2.0.50727.0
活动类别:无
事件ID:1334
日期:2012年4月22日
时间:上午11:23:13
用户:N / A
电脑:CCBSHAIS02
说明:
无法初始化AppDomain:/ LM / W3SVC / 1 / Root / AgentWS异常:System.SystemException
消息:无法创建AppDomain。
StackTrace:at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment(字符串 appId,IApplicationHost appHost,HostingEnvironmentParameters hostingParameters) System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironmentAndReportErrors(字符串 appId,IApplicationHost appHost,HostingEnvironmentParameters hostingParameters)
InnerException:System.OutOfMemoryException
消息:抛出了类型'System.OutOfMemoryException'的异常。
StackTrace:在System.AppDomain.nCreateDomain(String friendlyName, AppDomainSetup设置,Evidence providedSecurityInfo,Evidence creatorsSecurityInfo,IntPtr parentSecurityDescriptor)at System.AppDomain.CreateDomain(String friendlyName,Evidence securityInfo,AppDomainSetup info)at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment(字符串 appId,IApplicationHost appHost,HostingEnvironmentParameters hostingParameters)
有关IIS和AppDomains的进一步阅读,请查看:http://weblogs.asp.net/owscott/archive/2007/09/02/application-vs-appdomain.aspx