發表文章

目前顯示的是 十月, 2009的文章

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

實作HttpModule可以取代Global.asax,來處理Request_start、Session_Start 或Application_Error等事件的處理。看到這裡會有點疑問吧,既然兩者都一樣為何要使用HttpModule呢? 它的優點在於不必和整個網站挷在一起,不需使用時可以直接在組態檔拿掉。本例以當網頁發生錯誤時要作該事件的處理實作步驟1.新增類別並實作HttpModulenamespace Kim.Web
{
publicclass ErrorModule : IHttpModule
{
#region IHttpModule 的介面方法

publicvoid Init(HttpApplication application)
{

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

}

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

{
//主要程式處理

}
}
}



2.在網站註冊ErrorModule

<httpModules>

<addname="ErrorModule"type="Kim.Web.ErrorModule, Kim.Web"/>

</httpModules>

說明:type="命名空間+類別名稱,組件名稱(Kim.Web.dll)"
參考網址
http://codebetter.com/blogs/karlseguin/archive/2006/06/12/146356.aspx