当 Web 服务中未调用Application_End时 asp.net
本文关键字:End asp net Application 调用 Web 服务 | 更新日期: 2023-09-27 18:32:03
我知道在以下情况下会调用Apllication_end:
- 编辑正在运行的应用程序的配置文件。
- 更改 bin 目录中的 DLL。
- 停止(或重新启动)IIS。
- 进程回收在 IIS6 应用池中打开,或使用 aspnet 工作进程打开。
但我的问题是,在什么情况下,它不会被调用?
我知道如果您手动结束 w3wp 进程或服务器将残酷关闭,它不会被调用。
还有其他情况吗?
谢谢!
你的问题的答案基本上已经在你的问题中了。每当托管 Web 服务的进程正常关闭时,都会调用Application_End。
唯一会发生这种情况的情况是:
- 操作导致 IIS 重新启动服务进程(更改文件将强制执行此操作)
- IIS 服务已关闭
- 过程回收。
如果进程突然终止(即杀死 w3wp 进程),它将没有机会运行。
关闭可能是由 OutOfMemoryException 引起的,该异常导致创建执行请求所需的 AppDomain 失败。在此方案中,不会调用Application_end。
事件类型:错误
异常
事件源: ASP.NET 2.0.50727.0
事件类别: 无
事件 ID:1334
日期: 4/22/2012
时间: 上午
11:23:13 用户:不适用
计算机:CCBSHAIS02
描述:
无法初始化 AppDomain:/LM/W3SVC/1/Root/AgentWS:系统.系统异常
消息:无法创建应用程序域。
StackTrace: at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters) at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironmentAndReportErrors(String appId, IApplicationHost appHost, HostingEnvironmentParameters 托管参数)
InnerException: System.OutOfMemoryException
消息:引发类型为"System.OutOfMemoryException"的异常。
StackTrace: at System.AppDomain.nCreateDomain(String friendlyName, 应用程序域设置设置, 提供证据安全信息, 证据 creatorsSecurityInfo, IntPtr parentSecurityDescriptor) at System.AppDomain.CreateDomain(String friendlyName, Evidence securityInfo, AppDomainSetup info) at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment(String appId, IApplicationHost appHost, HostingEnvironmentParameters 托管参数)
有关IIS和AppDomain的进一步阅读,请参阅:http://weblogs.asp.net/owscott/archive/2007/09/02/application-vs-appdomain.aspx