HttpContext.Current.Session が Ashx ファイルで null です 質問する

HttpContext.Current.Session が Ashx ファイルで null です 質問する

いくつかの質問を見ました(ここそしてここ) ですが、私の質問には答えていません。私は「ajax.ashx」ファイルを使用して Ajax を呼び出そうとしており、関数内でセッションにアクセスしようとしています。何らかの理由で、セッション オブジェクト自体の値は 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

次のようにハンドラーIRequiresSessionStateの宣言に追加する必要があります。

public class YourHandleName : IHttpHandler, IRequiresSessionState 
{
...

デフォルトでは、ハンドラは最小限に抑えるためにセッションに接続されていません。 を追加することで、IRequiresSessionStateハンドラをセッションに接続します。

おすすめ記事