using System.Web;
using System;
using System.Web.SessionState;//需要引用/// <summary>
/// MyHandler 的摘要说明
/// </summary>
public class MyHandler : IHttpHandler, IReadOnlySessionState //需要实现IReadOnlySessionState接口
{
    public MyHandler() { }
    public void ProcessRequest(HttpContext context) 
    {
        context.Response.Write(context.Session["aa"]);
    }
    public bool IsReusable
    {
        get { return false; }
    }}   
web.config中加入下面的代码
 <httpHandlers>
    <add verb="*" path="*.do" type="MyHandler"/>      
 </httpHandlers>
执行一下看看结果....
protected void Button1_Click(object sender, EventArgs e)
{
  Session["aa"] = "hongqi162";
  Response.Redirect("123.do");}

解决方案 »

  1.   

    1楼正确
    如果想在HttpHandler中使用SessionState,必须实现这个接口,实际上也就是在类的标头将这个接口(IReadOnlySessionState)加进去。
      

  2.   

    那在handler中设置的session,到aspx页面中怎么没办法调用呢??
      

  3.   

    XXXPAGE XXX = (XXXPAGE)Context.Handler;
    String sss = XXX.Session["sss"] as String;
      

  4.   

    错误很明显就是告诉你没有设置过context.Session["UserInfo"] 的值..
    你在使用之前判断一下if (context.Session["UserInfo"] ==null){}else{}
    要不可能会有你那样的异常的.