Asp.net在ashx檔案中處理Session問題解決方案

來源:互聯網
上載者:User

今天做一個vb.net的登入執行個體,前台使用Ext中Ajax ,後台用ashx檔案處理登入過程,並將使用者儲存在Session中總是出現在這個錯誤. [NullReferenceException: 未將對象引用設定到對象的執行個體。]

從網上查了一下有以下幾種原因:

1、ViewState 對象為Unll。

2、DateSet 空。

3、sql語句或Datebase的原因導致DataReader空。

4、聲明字串變數時未賦空值就應用變數。

5、未用new初始化對象。

6、Session對象為空白。

開始以為是 Session對象為空白的原因:將代碼修改以下

if context.Session.isNewSession then

context.Session("UserName")=username 'username為接受的使用者名稱

.................

這樣修改了以後,暈!!!!!,還是相同的錯誤.再Google吧

輸入:ashx 處理 session 中於搜到了,太不容易,看來搜尋也需要很多技巧

原來:在 ashx 中要使用Session ,需要繼承System.Web.SessionState.IRequiresSessionState介面.預設的之繼承了IHttpHandler介面

OK 直接看原始碼吧

複製代碼 代碼如下:<%@ WebHandler Language="VB" Class="logout" %>

Imports System

Imports System.Web

Imports System.Web.SessionState

Public Class logout : Implements IHttpHandler, IRequiresSessionState

Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest

context.Session.Clear()

context.Response.Write("{'success':'true'}") 'JSON格式資料

End Sub

Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable

Get

Return False

End Get

End Property

End Class

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.