セッションステータスこのコンテキストで使用できないHttpModuleでセッションにアクセスできない理由

1591 ワード


カスタムHttpModuleと書きましたが、Sessionにアクセスできません.コードは次のとおりです.
public class RouteModule : IHttpModule, System.Web.SessionState.IRequiresSessionState
{

    public void Dispose()
    {

    }

    public void Init(HttpApplication context)
    {
        context.AcquireRequestState += context_AcquireRequestState;
    }

    void context_AcquireRequestState(object sender, EventArgs e)
    {
        var sessionNull = (sender as HttpApplication).Session == null;
        if (sessionNull)
        {

        }
    }
}

以上のように、AcquireRequestStateイベントではSessionは常に空であり、複数回のデバッグにより、要求された静的リソースが空であることが判明した.aspx、ashxのような動的リソースSessionがアクセスできることから、プロセッサマッピングされたリソースにアクセスしたときにのみSessionがロードされ、そうでなければSessionがロードされないため、HttpModuleではSessionにアクセスできず、これはIIS静的資源最適化の一態様である可能性がある.