Dot-Net
為什麼事件處理程序只能在 IHttpModule 初始化期間綁定到 HttpApplication 事件?
這只是另一個“在開發伺服器中工作,為什麼不在 IIS 中工作”類型的問題。
如此處所述,我使用 NHibernate 創建了一個不錯的 DAL 。創建 ISession 時,我將事件處理程序連接到 HttpApplication.EndRequest 以負責清理它。
但是,我將我的站點部署到 IIS,它說:
事件處理程序只能在 IHttpModule 初始化期間綁定到 HttpApplication 事件。
我完全理解消息在說什麼,但我無法理解為什麼。
我可以隨時訂閱
Button的事件,為什麼我不能訂閱 的事件HttpApplication?如果有人能對此有所了解,我將不勝感激。
而且我還想知道,為什麼它與開發伺服器一起工作而不是與 IIS 7 一起工作?
編輯:現在兩個月過去了,我仍然沒有收到任何有用的答案。:(
這個問題真的那麼難嗎?
您正在嘗試在其初始化管道之外使用 HttpApplication 。只是不要這樣做。正如錯誤所說,在 IHttpModule 初始化期間綁定您的事件。
因為IIS7對HTTP應用程序的啟動方式(基本上是關聯的工作程序及其HTTP應用程序)有一些改變。
看看http://n2cms.codeplex.com/Thread/View.aspx?ThreadId=38311。
如果您在經典模式或集成模式下使用 web.config 中的以下項目執行 IIS7,它應該可以正常工作:
<configuration> <system.webServer> <validation validateIntegratedModeConfiguration="false"/> </system.webServer> </configuration>(摘自http://code.google.com/p/n2cms/source/browse/trunk/src/wwwroot/Web.config)