我有以下简单的处理程序(为vissibilty sakes删除了一些代码,但是下面的代码仍然失败)
<%@ WebHandler Language="C#" Class="DownloadHandler" %>
using System;
using System.Web;
public class DownloadHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
if (context.Session["t1"] != "true")
{
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
行if (context.Session["t1"] != "true")
失败,&#34;对象引用未设置为对象的实例。&#34;而且我不明白为什么会这样?
答案 0 :(得分:11)
那是因为对于http处理程序来说,为了访问Session
,您需要明确地实现IRequiresSessionState
接口。
请记住,如果这样做会在会话对象上隐式锁定,并且您将无法同时处理同一会话状态中的多个处理程序。
还有IReadOnlySessionState
接口以及只读会话状态访问。