當前位置:開發者網絡 >> 技術教程 >> ASP教程 >> 腳本編碼 >> 內容
精彩推薦
分類最新教程
分類熱點教程
    
HttpModule和HttpHandler的一個小問題的解決
作者:未知
日期:2005-02-23
人氣:
投稿:snow(轉貼)
來源:未知
字體:
收藏:加入瀏覽器收藏
以下正文:
設計一個HttpHandler的時候發生了怎麼都無法訪問或者設置Session的問題:
//代碼是在網吧手動敲打,錯別字請別在意,意思明確即可
public class HttpHandlerTest : System.Web.IHttpHandler
{
public void ProcessRequest(System.Web.HttpContext context)
{
Response.Write(context.Session.SessionID.ToString());
}
}
調試發現連SessionID都無法獲取,提示沒有該對象的實例。難道這時HttpSession還沒有啟動(實例化)?
花了幾個小時查詢MSDN中Http管線鏈的全部流程裡的事件,一個個測試,發現都無法訪問Session對象,有點奇怪,查詢HttpSessionState同一命名空間下的對象,發現有一個接口:IRequireSessionState,提示這是一個無具體方法定義的接口,但是實現這個接口便可以訪問HttpSessionState對象了。測試一下,成功!
public class HttpHandlerTest : System.Web.IHttpHandler , System.Web.HttpSessionState.IRequireSessionState
{
public void ProcessRequest(System.Web.HttpContext context)
{
Response.Write(context.Session.SessionID.ToString());
}
}

一切OK!
相關文章: