写了一个自定义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静态资源优化的一种方式。

会话状态在此上下文中不可用HttpModule中无法访问Session原因的更多相关文章

  1. C#的HttpModule中及Java的Servlet中成员变量乱用导致的不易重现的BUG

    3年前写的在HttpModule中记录访问日志的代码,在最近使用日志数据分析登录账号的IP情况时,才发现了一个不易重现的BUG——日志中记录的登录账号出现串掉的情况.之所以这个时候才发现该问题,是因为 ...

  2. vs设计界面出现“建控件时出错 响应在此上下文中不可用”

    使用VS2010设计Asp.net时出现: 只有在配置文件或 Page 指令中将 enableSessionState 设置为 true 时,才能使用会话状态.还请确保在应用程序配置的 \\ 节中包括 ...

  3. [转]asp.net Request、Response 响应在此上下文中不可用

    这个问题一般是在页面中使用了Respons.Write()方法,虽然是继承了System.Web.UI.Page.但System.Web.UI.Page下的Response只有在asp.net页面里才 ...

  4. 响应在此上下文中不可用 asp.net

    (一)实例1: 在asp.net程序中添加了一个 类.cs 如下 using System; using System.Collections; using System.ComponentModel ...

  5. ASP.NET的SEO--- Global.asax和HttpModule中的RewritePath()方法

    本系列目录 因为在网上搜到了很多这方面的文章,而且UrlRewrite中SEO中的重要性也在逐步下降,所以这一节我就写得简单一些.以下是几个重点: 1.UrlRewrite,顾名思义,只是针对URL进 ...

  6. System.Web.HttpException: 请求在此上下文中不可用

    转自:https://www.cnblogs.com/wangguowen27/archive/2013/05/12/IIS_itcast_win7.html 问题:Web应用程序池配置错误造成的,这 ...

  7. 开发人员应该对IIS理论层的知识了解的多一些~第四讲 HttpModule中的几大事件

    返回目录 本文主要介绍HttpModule,它在一个网页请求过程中是一个怎样的过程是我们要知道的,在网页加载过程中HttpModule在何时被执行也是我们要知道的,以及,HttpModule在网页请求 ...

  8. Redis Sentinel高可用配置及C#访问

    本文环境如下: 操作系统:ubuntu-14.04.1-desktop-amd64 Redis:2.8.19 如果使用虚拟机则将每台的网络设置为桥接,否则他们之间能连上,局域网连不上. 系统设计如图: ...

  9. Web服务调试可用,发布之后访问出错

    今天重装了系统,然后发现之前的Web服务DataService不能用了.将其设置为启动项,运行的结果是 跟踪发现,是mysql.data.dll的版本不对.所以要找到所有版本不对的该dll,将其替换成 ...

随机推荐

  1. Linux 编写安全巡检脚本

    Linux 编写安全巡检脚本 检测/etc/passwd,/etc/shadow文件是否锁定 检测/etc/login.defs配置文件中密码有效期设置是否得当 检查所有用户账户(非系统账户)中是否存 ...

  2. utf-8-BOM删除bom

    utf-8  bom,去除bom //开始 function file_bom($wenjian,$remove = true) { //读取文件,将文件写入字符串    $contents = fi ...

  3. 【三支火把】--- 关于BIOS&UEFI查阅资料网站总结

    UEFI和BIOS的水太深,网上能找到的资料是那么的少,各个组织之间互有交叉,难弄的很,总结了下常用的BIOS资料网站,仅供参考,如果遗漏之处,请指出,博主将继续完善补充……

  4. linux 虚拟环境问题

    1.python环境 python2和python3命令用来区分python版本 pip2和pip3命令用来区分pip,你的包到底安装在哪里pip3 install xxx sudo apt inst ...

  5. Python语言、编译解释、动态库静态库、编译过程、头文件

    学习Python这门语言首先要了解 什么是编译与解释,什么是连接,什么是动态库与静态库, 什么是编译: 编译就是先把高级语言设计的程序翻译成二进制的机器语言,然后CPU直接执行机器码就可以了.一把翻译 ...

  6. echarts设置线条粗细

    series: [ { name:"buy", type:'line', data:[], itemStyle: { normal: { color: '#6cb041', lin ...

  7. echarts图调用多个接口

    html: <div id="sentimentMain1" style="width:960px;height:500px;margin:20px auto;&q ...

  8. python3 多线程笔记

    import threadingimport time #继承 class threading.Threadclass MyThread(threading.Thread): #类做初始化 def _ ...

  9. restTemplate使用

    转载博主: https://blog.csdn.net/itguangit/article/details/78825505 https://www.cnblogs.com/zhaoyan001/p/ ...

  10. 随性练习:excel中文字和链接存到html文件

    这是一个简单的练习,主要是将excel中文字和链接存到html文件中,并且可通过点击文字直通链接 excel格式如下图示,我这里得excel是07版的,所以用到xlrd模块 代码: import xl ...