*.ashx一般处理程序不能访问Session值的解决方法

<%@ WebHandler Language="C#" Class="productHandler" %> 

using System; 
using System.Web; 
using JBTCard.Entity.CompanyEntity; 
using JBTCard.Business.CompanyBS; 
using System.Collections.Generic; 
using Newtonsoft.Json; 
using System.Web.SessionState; 

public class productHandler : IHttpHandler, IRequiresSessionState, IReadOnlySessionState{ 
    
    public void ProcessRequest (HttpContext context) { 
    string moduleId = context.Request.Form["moduleId"].ToString(); 
    string message = ""; 
    switch (moduleId) 
    { 
    case "getPTypeList": 
    IList<ProductTypeIdNameEntity> list = ProductTypeBS.GetPTypeListIdName(); 
    message = JavaScriptConvert.SerializeObject(list); 
    break; 
    case "getCompanyById": 
int cid = Convert.ToInt32(context.Session["cid"]);    CompanyEntity company = CompanyBS.GetCompanyEntyById(1); 
    message = JavaScriptConvert.SerializeObject(company); 
    break; 
    case "insert": 
    string condis = context.Request.Form["condi"].ToString(); 
    ProductEntity model = (ProductEntity)JavaScriptConvert.DeserializeObject(condis, typeof(ProductEntity)); 

    bool b = ProductBS.AddProduct(model); 
    if (b) 
    { 
    message = "{success:true}"; 
    } 
    else 
    { 
    throw new Exception("商品添加失败!"); 
    } 
break; 
    } 
    context.Response.ContentType = "text/javascript"; 
    context.Response.Write(message); 
    } 

    public bool IsReusable { 
        get { 
            return false; 
        } 
    } 

} 

问了程序人生的站长,他说:

加上这句就好了:using System.Web.SessionState; 
posted @ 2014-09-04 11:05  super1234  阅读(755)  评论(2编辑  收藏  举报