zoukankan      html  css  js  c++  java
  • 会话状态在此上下文中不可用HttpModule中无法访问Session原因

    写了一个自定义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始终是空,经多次调试发现,请求的是静态资源时Session就是为空诸如aspx、ashx这类的动态资源Session就可以访问到,由此可见,只有在访问有处理程序映射的资源时才会加载Session否则不加载Session,因此在HttpModule中访问不到Session,这可能是IIS静态资源优化的一种方式。

    致读者:感谢你阅读本文,请随手点击右下角的推荐或分享,谢谢!
  • 相关阅读:
    十天冲刺4
    单词统计
    十天冲刺3
    学习进度第十周
    十天冲刺2
    十天冲刺1
    梦断代码阅读笔记03
    学习进度第九周
    [强网杯 2019]Upload
    [2020 新春红包题]1
  • 原文地址:https://www.cnblogs.com/yzeng/p/4129019.html
Copyright © 2011-2022 走看看