43

我看到了一些问题(此处此处),但他们没有回答我的问题。我正在尝试使用“ajax.ashx”文件调用 Ajax,并在函数中访问会话。出于某种原因,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>
4

1 回答 1

98

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

public class YourHandleName : IHttpHandler, IRequiresSessionState 
{
...

默认情况下,处理程序不与会话连接以保持它们最小,通过添加IRequiresSessionState您将它们附加到会话中。

于 2013-01-06T11:16:10.837 回答