HttpContext.Current.Session在Ashx文件中为空

本文关键字:文件 Ashx Current Session HttpContext | 更新日期: 2023-09-27 17:50:46

我看到了一些问题(这里和这里),但他们没有回答我的问题。我尝试使用"Ajax"来调用Ajax。ashx"文件,并在函数中访问会话。由于某些原因,Session对象本身的值为空。

使用例子:

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>

HttpContext.Current.Session在Ashx文件中为空

您必须在处理程序的声明中添加IRequiresSessionState:

public class YourHandleName : IHttpHandler, IRequiresSessionState 
{
...

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