Asp.Net会话立即到期

时间:2011-11-16 10:34:03

标签: asp.net .net vb.net web-config

我的Asp.net会话即使我在web.config文件中进行了设置,也会立即过期,

<system.web>
        <sessionState timeout="2880" mode="InProc" cookieless="UseCookies"></sessionState>
        <customErrors mode="RemoteOnly"/>
        <trace enabled="false" localOnly="false"/>
        <compilation debug="false" strict="false" explicit="true" targetFramework="4.0"/>
        <httpCookies httpOnlyCookies="true"/>
        <pages validateRequest="false" enableEventValidation="false" viewStateEncryptionMode ="Never" enableViewStateMac="false" />
    </system.web>

我在web.config中进行了上述设置,即使它在约3分钟后过期...... 任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

如果您的应用程序启用了AJAX,请删除cookieless属性。使用cookieless属性的默认值。

来自MSDN doc:

  

cookieless属性可以是以下可能值之一。   默认值为UseCookies值。

     

注意:配置时   启用AJAX的ASP.NET网站,仅使用默认值   UseCookies用于cookieless属性。使用Cookie的设置   ASP.NET AJAX客户端脚本不支持在URL中编码   库。

答案 1 :(得分:0)

我认为会话不会立即过期,而只是死亡。由于您使用InProc会话状态,因此可能会死亡

  • 对web.config文件的任何更改都会导致AppDomain卸载和会话
  • 应用程序池重新启动。 InProc会议非常冒险,我建议至少为每个网站分配单独的Applciation Pool
  • 文件后面的代码中的任何代码更改都会导致AppDomain卸载(以及会话),以便在新的AppDomain中加载新程序集

最佳解决方案 - 使用SqlServer Mode会话状态。