簡體   English   中英

在asp.net WebService中未調用Application_End時

[英]When Application_End isn't called in asp.net WebService

我知道在以下情況下會調用Apllication_end:

  1. 編輯正在運行的應用程序的配置文件。
  2. 更改bin目錄中的dll。
  3. 停止(或重新啟動)IIS。
  4. 在IIS6應用程序池中或使用aspnet工作進程打開了進程回收。

但我的問題是什么時候它不會被調用?
我知道如果你手動結束w3wp進程或服務器將被嚴重關閉,它將不會被調用。

還有其他場景嗎?

謝謝!

您的問題的答案基本上已經在您的問題中。 每當托管您的Web服務的進程正常關閉時,都會調用Application_End。

這種情況發生的唯一時間是:

  1. 一個動作導致IIS重新啟動服務進程(更改文件會強制執行此操作)
  2. IIS服務已關閉
  3. 工藝回收。

如果進程突然終止(即殺死w3wp進程),它將無法運行。

似乎殘酷的關閉可能是由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:位於System.Web.HostingEnvironment(String appId,IApplicationHost appHost,HostingEnvironmentParameters hostingParameters)的System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironmentAndReportErrors(String appId,IApplicationHost appHost,HostingEnvironmentParameters hostingParameters)

InnerException:System.OutOfMemoryException

消息:拋出了類型'System.OutOfMemoryException'的異常。

StackTrace:位於System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment的System.AppDomain.CreateDomain(String friendlyName,Evidence securityInfo,AppDomainSetup info)的System.AppDomain.nCreateDomain(String friendlyName,AppDomainSetup setup,Evidence providedSecurityInfo,Evidence creatorsSecurityInfo,IntPtr parentSecurityDescriptor)。 (String appId,IApplicationHost appHost,HostingEnvironmentParameters hostingParameters)

有關IIS和AppDomains的進一步閱讀,請訪問: http//weblogs.asp.net/owscott/archive/2007/09/02/application-vs-appdomain.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM