簡體   English   中英

HttpModule Init方法何時以ASP.NET集成模式運行?

[英]When HttpModule Init method runs in ASP.NET Integrated mode?

我已經編寫了一個NHibernate會話提供程序的HttpModule。 它只是在HttpModule的Init方法中打開一個SessionFactory,並在BeginRequest中獲取一個新的Session,然后在EndRequest中關閉它。 另一方面,我在Global.asax中編寫了一個方法,該方法使用來自HttpModule的名為GetData的會話。 我在Global.asax的Init方法中運行該方法(GetData)。 問題是當我在集成模式下使用HttpModule時,在運行Global.asax的Init方法之前,我的HttpModule似乎沒有初始化。

我搜索了運行這些方法的順序和事件的生命周期,但沒有發現有用的信息!

在IIS 7.x中,模塊和處理程序應在web.config文件的system.webServer xml元素中注冊。

檢查此MSDN文章:

當彼此調用HttpModule Init()方法時,ASP.NET不提供任何保證(與靜態初始化程序不同)。 通常,應使用Init()方法連接事件處理程序,並且任何“實際工作”都應在事件處理程序中完成。

在繼續進行下一個事件之前,將從所有HttpModule(包括Global.asax)中調用特定事件的所有已注冊事件處理程序-這樣您就可以通過這種方式控制順序。

暫無
暫無

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

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