What:
SessionDiskCache 是一个在Asp.net中可插接使用的HttpModule,SessionDiskCache支持asp.net2.0,不支持asp.net1.0和asp.net1.1
Why:
通常在我们对系统进行维护时(或其他意外情况)可能导致用户Session丢失,为了尽量减少此时的损失于是产生了SessionDiskCache
How:
SessionDiskCache在程序结束时将Session序列化到磁盘,程序重新开始时有新会话建立则检查是否有同一SessionID的文件,并将内容重新加载到Session
理论上使用SessionDiskCache无需对程序进行任何改动,但你需要为SessionDiskCache提供保存功能的类增加可序列化标签
Where:
SessionDiskCache可以用在个人站点,网站或企业级asp.net应用程序中

预备知识:
HttpModule
Session inproc
.net Serialization

如何安装:
一、把编译好的PBLee.WebUtil.SessionDiskCache.dll复制到web发布bin文件夹下
二、修改web.config

SessionDiskCache 0.1版发布<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
SessionDiskCache 0.1版发布    
<configSections>
SessionDiskCache 0.1版发布        
<section name="SessionDiskCache" type="PBLee.WebUtil.SessionDiskCache.SessionDiskCacheConfigurationSectionHandler, PBLee.WebUtil.SessionDiskCache"/>
SessionDiskCache 0.1版发布    
</configSections>
SessionDiskCache 0.1版发布  
<!-- Path 设置保存Session序列文件保存路径 ~\使用当前站点相对路径 -->
SessionDiskCache 0.1版发布    
<SessionDiskCache Path="~\SessionCache"/>
SessionDiskCache 0.1版发布    
<system.web>
SessionDiskCache 0.1版发布        
<httpModules>
SessionDiskCache 0.1版发布            
<add type="PBLee.WebUtil.SessionDiskCache.SessionDiskCache, PBLee.WebUtil.SessionDiskCache" name="SessionDiskCache"/>
SessionDiskCache 0.1版发布        
</httpModules>
SessionDiskCache 0.1版发布
SessionDiskCache 0.1版发布    
</system.web>
SessionDiskCache 0.1版发布
</configuration>

三,为可以在SessionDiskCache中保存的类增加可序列化标签[Serializable]
SessionDiskCache 0.1版发布[Serializable]
SessionDiskCache 0.1版发布
public class LoginUser
完成


SessionDiskCache如何工作:
作为HttpModule监听Session_Start Session_End Application_End事件
SessionDiskCache 0.1版发布                sessionModule.Start +=new EventHandler(SessionDiskCache_SessionStart);
SessionDiskCache 0.1版发布
SessionDiskCache 0.1版发布                sessionModule.End 
+=new EventHandler(SessionDiskCache_SessionEnd);
SessionDiskCache 0.1版发布
SessionDiskCache 0.1版发布                context.Disposed 
+=new EventHandler(context_ApplicationEnd);
Session开始时检查是否有已序列到磁盘的Session对象
SessionDiskCache 0.1版发布private void SessionDiskCache_SessionStart(object sender, EventArgs e)
        }
Application停止时将所有Session保存到磁盘
SessionDiskCache 0.1版发布private void context_ApplicationEnd(object sender, EventArgs e)
        }

注意:
SessionDiskCache只能用于可捕获Application_End的情况,如bin文件夹变动,web.config变动,IIS停止
如果您准备使用SessionDiskCache,请尽量了解前面提到的预备知识,已备在需要修改时有能力独立完成。
本工具以免费开放源代码方式提供,不保证提供技术支持和版本更新
相关技术讨论可以在本Blog(http://pblee.cnblogs.com)进行

源代码和Sample 点击这里下载

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-06-10
  • 2022-01-23
  • 2022-01-01
  • 2021-12-09
  • 2022-01-20
猜你喜欢
  • 2021-06-17
  • 2022-02-21
  • 2021-05-10
  • 2022-12-23
  • 2022-12-23
  • 2019-08-22
  • 2022-01-13
相关资源
相似解决方案