實作HttpModule代替Global.asax 處理各項事件
實作HttpModule可以取代Global.asax,來處理Request_start、Session_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