實作HttpModule代替Global.asax 處理各項事件

實作HttpModule可以取代Global.asax,來處理Request_startSession_Start Application_Error等事件的處理。看到這裡會有點疑問吧,既然兩者都一樣為何要使用

HttpModule?

它的優點在於不必和整個網站挷在一起,不需使用時可以直接在組態檔拿掉。

本例以當網頁發生錯誤時要作該事件的處理

實作步驟

1.新增類別並實作HttpModule

namespace Kim.Web
{
public class ErrorModule : IHttpModule
{
#region IHttpModule 的介面方法

public void Init(HttpApplication application)
{

//註冊只要網頁發生錯誤的事件處理
application.Error += new EventHandler(application_Error);

}

public void Dispose() { }
#endregion
public void application_Error(object sender, EventArgs e)

{
//主要程式處理

}
}
}




2.在網站註冊ErrorModule

<httpModules>

<add name="ErrorModule" type="Kim.Web.ErrorModule, Kim.Web" />

</httpModules>

說明:type="命名空間+類別名稱,組件名稱(Kim.Web.dll)"


參考網址


http://codebetter.com/blogs/karlseguin/archive/2006/06/12/146356.aspx

這個網誌中的熱門文章

IIS 設定只允許特定IP進入