いくつかの質問( 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>
ハンドラーの宣言にIRequiresSessionState
を次のように追加する必要があります。
public class YourHandleName : IHttpHandler, IRequiresSessionState
{
...
デフォルトでは、IRequiresSessionState
を追加することでハンドラをセッションにアタッチすることで、ハンドラはセッションに接続されずに最小限に抑えられます。