FormsAuthenticationTicket传票我设置了30分钟过期DateTime.Now.AddMinutes(30),为什么在我本机测试正常,上传到虚拟空间后貌似变成了1分钟左右,1分钟过后就得重新登录,有的时候要登录好几次才行,这大概是什么原因,是不是虚拟空间设置问题,望高人帮我分析下,谢谢

解决方案 »

  1.   

    <?xml version="1.0" encoding="utf-8"?>
    <!-- 
        注意: 除了手动编辑此文件以外,您还可以使用 
        Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
         “网站”->“Asp.Net 配置”选项。
        设置和注释的完整列表在 
        machine.config.comments 中,该文件通常位于 
        \Windows\Microsoft.Net\Framework\v2.x\Config 中
    -->
    <configuration>
      <appSettings>
        <add key="WebDAL" value="MSSQL"/>
        <add key="DBConnectionString" value="..."/>
        <add key="AdmID" value="06BAF306A4517617F2CFDC27BED77C8E"/>
        <add key="AdmPWD" value="47A70D17D261478FC416BD5A46C72BB7"/>
        <add key="systemfolder" value="system_dntb/"/>
      </appSettings>
        <connectionStrings>
          <add name="DBConnectionString" connectionString="..." />    </connectionStrings>
        <system.web>
          <pages>
            <controls>
              <add tagPrefix="anthem" namespace="Anthem" assembly="Anthem"/>
            </controls>
          </pages>
          <httpModules>
            <add name="WebResourceCompression" type="WebResourceCompression.WebResourceCompressionModule"/>
          </httpModules>
          <!-- 
                设置 compilation debug="true" 将调试符号插入
                已编译的页面中。但由于这会 
                影响性能,因此只在开发过程中将此值 
                设置为 true。
            -->
            <compilation debug="true" />
            <!--
                通过 <authentication> 节可以配置 ASP.NET 使用的 
                安全身份验证模式,
                以标识传入的用户。 
            -->
          <authentication mode="Forms">
            <forms name=".FormsAuth" loginUrl="adm/Login.aspx" protection="All" path="/" defaultUrl="adm/"/>
          </authentication>
          <authorization>
            <allow users="*"/>
          </authorization>
          <globalization requestEncoding="utf-8" responseEncoding="utf-8"/>
          <!--
                如果在执行请求的过程中出现未处理的错误,
                则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
                开发人员通过该节可以配置
                要显示的 html 错误页
                以代替错误堆栈跟踪。
            -->
          <customErrors mode="RemoteOnly" defaultRedirect="error/error.htm">
            <error statusCode="403" redirect="error/error403.htm" />
            <error statusCode="404" redirect="error/error404.htm" />
          </customErrors>    </system.web></configuration>
      

  2.   

    现在问题更严重了,发现我后台的ajax功能在虚拟机上过期时间特别特别短,只有大概20秒左右,就是打开后台某个页,只要你20秒左右不做任何操作,ajax功能就失效了,估计应该是虚拟机配置问题了,有没有人知道影响ajax过期时间的因素啊?
      

  3.   

    .net保存状态默认应该是在进程内(iis),可以换成 stateserver服务,相对稳定些。
      

  4.   

    6#的意思就是导致传票和ajax失效的原因是session过期?那再多问个:如果我程序你找你说的那样设置成:<sessionState mode="StateServer" timeout=“很大一个数”.../>,那如果iis里设置的过期时间比较小是不是程序里的就不起作用了?
      

  5.   

    Forms身份验证使用cookie,与Session没有关系~
      

  6.   

    传票是基于cookies来返服务器和客户端机制。怎么会说到Session过期呢?
    看看Form传票代码
      

  7.   

    谢谢各位,我也知道传票用的是cookie,但cookie是保存在我机器上的,浏览器不关不可能过期,能过期的只有session了,但貌似又和传票不相干,所以想请大家帮我分析分析有哪些原因可能导致传票过期,我好和服务商联系,(*^__^*) 
      

  8.   

    比如服务器重启、IIS服务重启、站点重启
    可能在同一台机器上有一个垃圾程序所致~
      

  9.   

    18#说的垃圾程序倒是第一次听说哦
    传票先不管了,我只好用原始的cookie判断(就是每页都写判断cookie语句的那种),用这个方法权限过期的问题解决了,可ajax过期的问题依旧,郁闷
    先结贴,等会再开一贴,望各位帮我分析下ajax过期的原因
      

  10.   

    ajax过期???你有用到ajax中的session吗?有的化建议换成stateserver方式存储