2010-10-19 48 views
10

在正常的aspx頁面上,我發生了諸如Page_Init,Page_Unload等事件,這些事件發生在in a well-defined order什麼是ASP.NET Webservice請求生命週期?

我有一個asmx頁面提供[WebMethod()] s。有類似的事件嗎?特別是,有些事件允許我初始化一些數據(如Page_Load)並進行一些清理(如Page_Unload)將非常有用。 (據我所知,asmx代碼隱藏類的構造函數似乎在每個WebMethod請求上被調用,即爲每個WebMethod請求創建一個新實例,但這僅僅是一個觀察,並不是東西我發現某處記錄...)

+0

我會指出這是相當依賴於實現的信息,特別是考慮到ASMX幾乎已被WCF取代,WCF具有完全不同的生命週期。 – 2010-10-20 21:02:43

回答

9

是的--Otavio是正確的,ASMX Web服務沒有Page事件,因爲它們不是從Page派生的。

但是,請求遵循常規ASP.NET processing pipeline

在執行相關IHttpHandler的過程中有一點值得注意。這可以是頁面,通用HTTP處理程序或Web服務。

這是Web服務請求執行的地方。

所以,這實際上取決於你要在這裏做什麼。 Ctor應該提供一個良好的接入前請求執行。如果你正在尋找更早的東西,那麼你可能需要掛鉤一個Global.asax事件。

1

asmx對象沒有頁面導出,而從System.Web.Services.WebService,所以他們不會有你正在尋找的事件。