web-dev-qa-db-ja.com

AshxファイルでHttpContext.Current.Sessionがnull

いくつかの質問( Here および Here )を見ましたが、彼らは私の質問に答えません。私は「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>
39
Mosh Feu

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

public class YourHandleName : IHttpHandler, IRequiresSessionState 
{
...

デフォルトでは、IRequiresSessionStateを追加することでハンドラをセッションにアタッチすることで、ハンドラはセッションに接続されずに最小限に抑えられます。

85
Aristos