2012-12-21 30 views
2

在ASP.NET WebAPI中,在global.asax.cs文件中有一個名爲ApplicationStart的方法,它在應用程序啓動時自動調用。這是怎麼回事?Application_End()WebApi

我問的原因是我想添加一個Application_End方法來做任何我需要做的清理。

+0

http://stackoverflow.com/questions/288350/application-end-global-asax –

+0

重要的是要注意,只有在IIS中運行WebApi應用程序時纔會調用這些應用程序。如果你切換到自己的主機(OWIN),這就消失了。 – LRFalk01

回答

10

對於Global.asax方法,ASP.NET WebApi與ASP.NET沒有區別。這些方法是在加載應用程序並在適當的時候調用時通過由IIS應用程序池worker進行的反射發現的。在MSDN有一個很好的概述。

當應用程序在應用程序池內運行時,Application_Start()由IIS調用。一般來說,當請求進入應用程序域內的資源時會發生這種情況。畢竟,應用程序必須運行才能請求服務。

Application_End()在應用程序卸載之前或應用程序池回收之前調用。有各種觸發器會導致應用程序池回收。

1

MSDN這裏有全部細節 - http://msdn.microsoft.com/en-us/library/ms178473(v=vs.100).aspx,但關鍵的一點是你感興趣的是:

的Application_Start .....時調用在ASP第一資源(如網頁)。請求NET應用程序。 Application_Start方法在應用程序的生命週期中只調用一次。您可以使用此方法執行啓動任務,例如將數據加載到緩存中並初始化靜態值。

實質上,它由應用程序容器(例如IIS)自動在每個應用程序生命週期中調用一次。

相關問題