bro*_*her 5 c# asp.net session handler
我有以下简单的处理程序(为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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
该行if (context.Session["t1"] != "true")失败,"对象引用未设置为对象的实例".我不明白为什么会这样?
Vla*_*aev 11
那是因为对于http处理程序,为了访问Session你需要显式实现IRequiresSessionState接口.
请记住,如果这样做,会话对象将存在隐式锁定,并且您将无法同时处理同一会话状态中的多个处理程序.
只有一个IReadOnlySessionState接口用于只读会话状态访问.