.net设置用户登录CACHE过期时间

来源:互联网 发布:全部网络歌曲试听 编辑:程序博客网 时间:2024/05/22 17:40

客户需求要24小时页面不需要重新登录。改动如下。。

<configuration>
    <system.web>
      <pages validateRequest="false" controlRenderingCompatibilityVersion="4.0" />
      <httpHandlers>
        <add verb="GET" path="/code.aspx" type="DME.Web.Common.DMEWeb_ValidateImg,DME.Web" />
      </httpHandlers>
      <compilation targetFramework="4.5" />
      <!--<httpRuntime targetFramework="4.5"/>-->
      <sessionState mode="StateServer" cookieless="false" timeout="1440"/>

    </system.web>
    <appSettings>


还有要把服务启动里面的ASP.NET State Service设置为自动启动


开发asp.net应用时,修改web.config中的SessionState节点。

stateserver模式:

  1. <sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"cookieless="false" timeout="120"/>  
  1. <sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"cookieless="false" timeout="120"/>  

InProc模式 
优点:获取session状态的速度快,session状态直接存储在iis的进程中。 
缺点:易丢失,经常需要重新登录 

StateServer模式 
优点:session状态单独存储在一个进程中,不会因为iis或者应用的重启而丢失状态 
缺点:获取session状态的速度比InProc慢一些,毕竟是两个不同的进程。 

在开发的时候,对应用有一点修改,就会导致应用的重启,这时候如果使用InProc模式 
,那么每次都需要重新登录,比较浪费时间.建议使用StateServer模式。并在iis里面设置超时时间长一些。 

注:使用StateServer模式的时候 
1、要开启“ASP.NET State Service”服务(设为“自动”) 

2、如果stateConnectionString的值不是127.0.0.1或者localhost等代表本地地址的值,需要修改注册表:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state \Parameters 节点 → 将 AllowRemoteConnection 的键值设置成“1”(1 为允许远程电脑的连接,0 代表禁止)→ 设置 Port (端口号) 

3、session中存储非序列化的对象,如果违反会抛出 无法序列化会话状态。在“StateServer”或“SQLServer”模式下,ASP.NET 将序列化会话状态对象,因此不允许使用无法序列化的对象或 MarshalByRef 对象。如果自定义会话状态存储在“Custom”模式下执行了类似的序列化,则适用同样的限制。这样的异常。如果向session存储自定义的对象,那么该对象的类上一定要加上[Serializable]注释。



0 0
原创粉丝点击