セッションステータスこのコンテキストで使用できない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静的資源最適化の一態様である可能性がある.