本文介绍了HttpContext.Current.Session 在 Ashx 文件中为 null的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我看到了一些问题(这里此处)但他们没有回答我的问题.我正在尝试使用ajax.ashx"文件调用 Ajax,并在函数中访问会话.出于某种原因,Session 对象本身的值为 null.

I saw some questions (Here and Here) but they do not answer my question.I am trying to call Ajax using "ajax.ashx" file, and in function to access Session.For some reason, the value of the Session object itself is 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 中:

In the Web.config:

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

推荐答案

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

You must add on your handler the IRequiresSessionState on the declaration of it as:

public class YourHandleName : IHttpHandler, IRequiresSessionState
{
...

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

by default the handlers are not connected with the session to keep them minimum, by adding the IRequiresSessionState you attach them with the session.

这篇关于HttpContext.Current.Session 在 Ashx 文件中为 null的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-30 03:37
查看更多