【发布时间】:2011-06-15 20:27:53
【问题描述】:
我有一个 ASHX 文件:
对象引用未设置为 对象的实例。
上线:
HttpContext.Current.Session["loggedIn"] = true
这是我正确使用会话的方式吗?
【问题讨论】:
我有一个 ASHX 文件:
对象引用未设置为 对象的实例。
上线:
HttpContext.Current.Session["loggedIn"] = true
这是我正确使用会话的方式吗?
【问题讨论】:
我猜Session 是这里的罪魁祸首;参考here,您可能想尝试将: IRequiresSessionState 添加到您的处理程序(ashx 的代码隐藏)。所以你应该有类似的东西:
public class Handler1 : IHttpHandler, System.Web.SessionState.IRequiresSessionState
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
context.Response.Write("Hello World");
context.Session["loggedIn"] = true;
}
public bool IsReusable
{
get
{
return false;
}
}
}
还要注意,与传入的context 交谈更容易,但HttpContext.Current 也应该可以工作。
【讨论】:
默认情况下,ASHX 处理程序没有会话信息。
查看此页面 http://www.hanselman.com/blog/GettingSessionStateInHttpHandlersASHXFiles.aspx
IRequiresSessionState
【讨论】: