Ashx文件中的HttpContext.Current.Session为null

时间:2013-01-06 10:54:37

标签: c# asp.net .net session generic-handler

我看到了一些问题(HereHere),但他们没有回答我的问题。 我试图使用" ajax.ashx"来调用Ajax。文件,以及访问Session的功能。 出于某种原因,Session对象本身的值为null。

使用示例:

Session = HttpContext.Current.Session // This is null

或者:

public virtual void ProcessRequest(HttpContext context)
{
    System.Web.SessionState.HttpSessionState Session = context.Session; 
    // This is null
}

在Web.config中:

<sessionState timeout="1800"></sessionState>

1 个答案:

答案 0 :(得分:81)

您必须在处理程序上将IRequiresSessionState的声明添加为:

public class YourHandleName : IHttpHandler, IRequiresSessionState 
{
...

默认情况下,处理程序未与会话连接以保持最低限度,方法是添加IRequiresSessionState将其附加到会话中。