最近需要做一個(gè)對特定請求進(jìn)行響應(yīng)的接口,只是在內(nèi)部處理,不存在UI,機(jī)于這種情況,當(dāng)然是使用實(shí)現(xiàn)IHttpHandler來進(jìn)行處理,可以減掉加載HTML 控件的時(shí)間。本來都是這樣想的,對于IHttpHandler 中定義了兩個(gè)方法,PRocessRequest(HttpContext ctx) 和 IsRunable() 這兩個(gè),看到在ProcessRequest(HttpContext ctx) 中有個(gè)HttpContext的輸入?yún)?shù),本來以為通過這個(gè)就可以對所有的服務(wù)器對象進(jìn)行使用,只是在前面需要對HttpContext的引用。不過問題出現(xiàn)了,在這個(gè)自定義HTTP 響應(yīng)處理頭中需要寫入session,對于其他Request和Response 都可以通過使用HttpContext來引用使用,不過Session 就是不行,總是出現(xiàn)對象未進(jìn)行引用的錯(cuò)誤,真是百思不得其解,好好的HTTPCONTEXT 里面都列出了可以使用的服務(wù)器對象,但是就是SESSION 用不了!真苦,只好將自定義HTTPHANDLER 的內(nèi)容做到普通的WEBFORM 中。就在做好后,卻無意中發(fā)現(xiàn)在自定義HTTPHANDLER 中使用SESSION 的方法!
1、先引用System.Web.SessionState 這個(gè)命名空間,
2、如果是要在HttpHandler 中讀取Session的內(nèi)容,就要在實(shí)現(xiàn)IHttpHandler 的類中同時(shí)實(shí)現(xiàn)IReadOnlySessionState 這個(gè)接口。
3、如果是要在HttpHandler 中讀寫Session的內(nèi)容,就要在實(shí)現(xiàn)IHttpHandler 的類中同時(shí)實(shí)現(xiàn)IRequiresSessionState
這樣就可以在自定義的HttpHandler 中正常的使用Session了。
新聞熱點(diǎn)
疑難解答
圖片精選