分享

Asp.net 网站 Session 丢失,会话过期,Cookie 过期 的原因及解决方案

 A_POST 2013-12-16
Asp.net 网站 Session 丢失,会话过期,Cookie 过期 的原因及解决方案
有朋友问: 我开发的 asp.net 站点在本地运行时 很正常,可是发布到了生产环境之后,不能正常运行,经常出错,检查原因时发现是因为 Session和Cookie 经常无缘无故丢失。
 
从表面上看这是个比较奇怪的问题,难道生产环境和本地环境有什么不同吗? 
答案是: 确实有点不一样。
 
asp.net 中的 cookie 和 session 都是要加密的,而加密时要用到MachineKey, 如果你的asp.net 的web.config 中没有加上 MachineKey,当然你发布到生产环境之后就会遇到上面的问题,加上 MachineKey 配置项就不会出错了。
 
MachineKey的配置如下:
<system.web>
<machineKey validationKey="A40C4D37C52C1ACCC5C7B9224274DDB3E5C4D1618B4509C7" decryptionKey="6053A3FE59AC5E83163D09D6E36CFC8FFEBE81E67EE55122" validation="SHA1" />
</system.web>

1
2
3
4
5
6
7
在ASP.NET这样的Web应用中,Session是用来保存用户状态的常用手段,不过由于服务器内存空间是有限的,所以Session过期时间设置是很有必要的。在ASP.NET中如何设置Session的过期时间呢,很简单,修改web.config配置。 
        具体修改方法如下,在web.config中进行如下配置
 
<system.web>
    <sessionState mode="InProc" timeout="30"/>
</system.web>
        在这里指的是Session过期时间为30分钟。也就是说30分钟后如果当前用户没有操作,那么Session就会自动过期了。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多