• 会话状态在此上下文中不可用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静态资源优化的一种方式。

    致读者:感谢你阅读本文,请随手点击右下角的推荐或分享,谢谢!
  • 相关阅读:
    硬件基础---拆装机
    Dynamics CRM 2015 Update 1 系列(4): 自己定义主键
    Heroku第三方服务接入指南(二)
    ssh 免密登录
    CentOS 7 NAT软路由
    Nginx升级
    挖矿病毒
    安装 epel-release
    hydra 安装和使用
    Linux 安全信息查看
  • 原文地址:https://www.cnblogs.com/yzeng/p/4129019.html
Copyright © 2020-2023  润新知