在asp.net WebService中未调用Application_End时

Dor*_*hen 5 .net c# asp.net iis application-end

我知道在以下情况下会调用Apllication_end:

  1. 编辑正在运行的应用程序的配置文件.
  2. 更改bin目录中的dll.
  3. 停止(或重新启动)IIS.
  4. 在IIS6应用程序池中或使用aspnet工作进程打开了进程回收.

但我的问题是什么时候它不会被调用?
我知道如果你手动结束w3wp进程或服务器将被严重关闭,它将不会被调用.

还有其他场景吗?

谢谢!

Dor*_*hen 2

看来残酷的关闭可能是由 OutOfMemoryException 引起的,该异常导致创建执行请求所需的 AppDomain 失败。在这种情况下,Application_end 将不会被调用。

事件类型:错误
事件源:ASP.NET 2.0.50727.0
事件类别:无
事件 ID:1334
日期:4/22/2012
时间:11:23:13 AM
用户:N/A
计算机:CCBSHAIS02
说明:
无法初始化应用程序域:/LM/W3SVC/1/Root/AgentWS

异常:System.SystemException

消息:创建 AppDomain 失败。

StackTrace:在System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment(字符串appId,IApplicationHost appHost,HostingEnvironmentParameters托管参数)在System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironmentAndReportErrors(字符串appId,IApplicationHost appHost,HostingEnvironmentParameters托管参数)

内部异常:System.OutOfMemoryException

消息:引发了“System.OutOfMemoryException”类型的异常。

StackTrace:在System.AppDomain.nCreateDomain(字符串友好名称,AppDomainSetup设置,提供的证据SecurityInfo,证据创建者SecurityInfo,IntPtrparentSecurityDescriptor)在System.AppDomain.CreateDomain(字符串友好名称,证据安全信息,AppDomainSetup信息)在System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment (字符串 appId、IApplicationHost appHost、HostingEnvironmentParameters 托管参数)

有关 IIS 和 AppDomains 的进一步阅读,请参阅:http://weblogs.asp.net/owscott/archive/2007/09/02/application-vs-appdomain.aspx