经过长时间研究,发现System.Web.Dll没有提供额外的机制从SessionStateModule中获得设置事件句柄的机会(可参看我MSN上的Blog:是MS故意这么设计还是根本就是一个Bug?)。
后来看了很多相关的文章(博客园最多了),又设计从HttpModule的Dispose方法中寻找出路,结果全部失败。于是我设计了一个全程跟踪HttpApplication和HttpModule运行步骤的一个Solution,结果令人啼笑皆非。
测试说明
测试项目源文件
相信很多人会有兴趣。如果有谁能够给我出点主意的话,那就再好不过了。
补充:R.Z.提醒我,监控HttpApplication的Disposed事件。
经再次测试证实,Module中的Application_Disposed事件发生在Module的Dispose之前的同一线程中,依然与Session_End无关。