【问题标题】:When Application_End isn't called in asp.net WebService在 asp.net WebService 中未调用 Application_End 时
【发布时间】:2023-03-21 19:30:01
【问题描述】:

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

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

但我的问题是什么情况下它不会被调用?
我知道如果您手动结束 w3wp 进程或服务器将残酷关闭,它将不会被调用。

还有其他情况吗?

谢谢!

【问题讨论】:

  • 以编程方式卸载应用程序域也可能会这样做。虽然还没有确认自己。

标签: c# asp.net .net iis application-end


【解决方案1】:

您的问题的答案基本上已经在您的问题中了。只要托管您的 Web 服务的进程正常关闭,就会调用 Application_End。

这种情况发生的唯一时间是:

  1. 一项操作导致 IIS 重新启动服务进程(更改文件会强制执行此操作)
  2. IIS 服务已关闭
  3. 流程回收。

如果进程突然终止(即杀死 w3wp 进程),它将没有机会运行。

【讨论】:

  • +1 获取正确信息,并超越在第一句话处停下来的简单路线。
  • @Dor:据我所知,没有其他情况会导致进程正常回收。
【解决方案2】:

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

事件类型:错误
事件来源:ASP.NET 2.0.50727.0
活动类别:无
事件 ID:1334
日期:2012 年 4 月 22 日
时间:上午 11:23:13
用户:不适用
电脑:CCBSHAIS02
说明:
初始化 AppDomain 失败:/LM/W3SVC/1/Root/AgentWS

异常:System.SystemException

消息:无法创建 AppDomain。

堆栈跟踪:在 System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment(字符串 appId、IApplicationHost appHost、HostingEnvironmentParameters 托管参数)在 System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironmentAndReportErrors(字符串 appId、IApplicationHost appHost、HostingEnvironmentParameters 托管参数)

InnerException: System.OutOfMemoryException

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

StackTrace:在 System.AppDomain.nCreateDomain(字符串友好名称, AppDomainSetup setup, Evidence providedSecurityInfo, Evidence creatorsSecurityInfo, IntPtr parentSecurityDescriptor) 在 System.AppDomain.CreateDomain(字符串友好名称,证据 securityInfo,AppDomainSetup 信息)在 System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment(字符串 appId、IApplicationHost appHost、HostingEnvironmentParameters 托管参数)

如需进一步了解 IIS 和 AppDomain,请查看:http://weblogs.asp.net/owscott/archive/2007/09/02/application-vs-appdomain.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-08
    • 1970-01-01
    • 1970-01-01
    • 2012-08-18
    相关资源
    最近更新 更多