程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> Asp.net在ashx文件中處理Session問題解決方法

Asp.net在ashx文件中處理Session問題解決方法

編輯:ASP.NET基礎

今天做一個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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved