写了一个自定义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. Educational Codeforces Round 60 (Rated for Div. 2)D(思维,DP,快速幂)

    #include <bits/stdc++.h>using namespace std;const long long mod = 1e9+7;unordered_map<long ...

  2. Q的进阶用法

    Q的实例化用法 #q1 里面的条件都是or的关系 q1=Q() q1.connector = 'OR' q1.children.append(('id',1)) q1.children.append( ...

  3. js初识

    01-Javascript简介   Web前端有三层: HTML:从语义的角度,描述页面结构 CSS:从审美的角度,描述样式(美化页面) JavaScript:从交互的角度,描述行为(提升用户体验) ...

  4. silverlight browse information

    public class Browser { /// <summary> /// During static instantiation, only the Netscape flag i ...

  5. P1742 最小圆覆盖

    \(\color{#0066ff}{题目描述}\) 给出N个点,让你画一个最小的包含所有点的圆. \(\color{#0066ff}{输入格式}\) 先给出点的个数N,2<=N<=1000 ...

  6. 18.Jewels and Stones(珠宝和石头)

    Level:   Easy 题目描述: You're given strings J representing the types of stones that are jewels, and Sre ...

  7. php实现页面跳转的几种方式

    PHP中实现页面跳转有一下几种方式,看了几个人写的不是很条理,自己整理一下 在PHP脚本代码中实现 <?php header("location:url地址") ?> ...

  8. POJ1004 Financial Management

    题目来源:http://poj.org/problem?id=1004 题目大意: Larry今年毕业并找到了工作.他开始赚很多的钱,然而他似乎总觉得不够.Larry决定好好掌控他的资产,解决他的财务 ...

  9. Educational Codeforces Round 3 B

    B. The Best Gift time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...

  10. codeforces 620D Professor GukiZ and Two Arrays

    #include <bits/stdc++.h> using namespace std; + ; const long long inf = 1e18; int n, m; long l ...