一次有趣的测试

最近一直被HttpApplication所困扰。说起来,起因就是因为想在HttpModule中捕获Session_End事件。因为项目对松耦合的要求(在Global.asax.cs中无法预知事件的捕获者是谁或者是否存在,全凭web.config的配置来定),所以必须寻找到一种方式来Hook HttpApplication的Session_End方法。
经过长时间研究,发现System.Web.Dll没有提供额外的机制从SessionStateModule中获得设置事件句柄的机会(可参看我MSN上的Blog: 是MS故意这么设计还是根本就是一个Bug?)
后来看了很多相关的文章(博客园最多了),又设计从HttpModule的Dispose方法中寻找出路,结果全部失败。于是我设计了一个全程跟踪HttpApplication和HttpModule运行步骤的一个Solution,结果令人啼笑皆非。
测试说明
测试项目源文件
相信很多人会有兴趣。如果有谁能够给我出点主意的话,那就再好不过了。

补充: R.Z.提醒我,监控HttpApplication的Disposed事件。
经再次测试证实,Module中的Application_Disposed事件发生在Module的Dispose之前的同一线程中,依然与Session_End无关。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值