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

8/10/2015来源:ASP.NET技巧人气:1653

*.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;