web-dev-qa-db-ja.com

Asp.Netセッションがashxファイルでnullです

以下に示すように、Asp.Net ashxハンドラーのセッション変数にアクセスしようとしています。

public void ProcessRequest (HttpContext context) {
        context.Session["VariableName"] = Id;
    }

ただし、上記のメソッド内では、context.Sessionは常にNullです。 ashxファイルのSessionオブジェクトにアクセスするにはどうすればよいですか?

32
Amitabh

IRequiresSessionState または IReadOnlySessionState のいずれかを「実装」する必要があります。前者はセッションへのフルアクセスを提供し、後者は読み取り専用アクセスを提供します。

ここでは「実装」を引用しています。これら2つはいわゆる「 マーカーインターフェイス 」であり、メンバーがないことを意味します。

94
Anton Gogolev

VBでは、Antonが言及したインターフェイス(IRequiresSessionStateまたはIReadOnlySessionState)を次のように実装します。

Public Class MyAshxFile

    Implements System.Web.IHttpHandler
    Implements System.Web.SessionState.IRequiresSessionState ''need this for session variables
    Implements System.Web.SessionState.IReadOnlySessionState ''need this for session variables
2
Taylor Brown