如何在asp.net中停止20分钟后暂停会话超时?

3 c# asp.net visual-studio-2010

我正在使用iis6来部署我的应用程序.无论我如何更改iis配置中的超时或我添加一个global.asax文件来设置Session.Timeout,甚至使用会话状态,我仍然在20分钟后获得会话超时,这太疯狂了!有人请帮帮我吗?我很困惑..

web.config中:

 <authentication mode="Forms">
          <forms name="__authcookie" loginUrl="LoginPage.aspx" timeout="60" protection="All" requireSSL="false" slidingExpiration="true" cookieless="UseDeviceProfile" enableCrossAppRedirects="false"/>
      </authentication>
      <sessionState mode="InProc" timeout="60" customProvider="AppFabricCacheSessionStoreProvider"></sessionState>
    <membership>
      <providers>
        <clear />
        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
      </providers>
    </membership>
    <profile>
      <providers>
        <clear />
        <add name="AppFabricCacheSessionStoreProvider" type="Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider" cacheName="NamedCache1" sharedId="SharedApp"/>
        <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
      </providers>
    </profile>
Run Code Online (Sandbox Code Playgroud)

Rom*_*ain 5

在您的web.config文件中包含此内容:

使用web.config

    <sessionState timeout="minutes"/> 
Run Code Online (Sandbox Code Playgroud)

使用IIS

在Internet服务管理器中更改以下超时.选择大于默认值20的值.

  1. 选择默认网站>属性>主目录>应用程序设置>配置>选项.

  2. 启用会话状态超时并将会话超时设置为60分钟.

在此输入图像描述

  1. 选择"应用程序池">"DefaultAppPool">"属性".

  2. 在"空闲超时"下的"性能"选项卡中,在空闲时为高于20的值设置关闭工作进程.

在此输入图像描述

IIS上的默认会话超时设置为20分钟,但可以将其增加到最多24小时或1440分钟.


Gar*_*rom 5

我最近一直在努力解决这个问题。似乎有很多地方可以设置超时,但是您的超时只会与设置最短的属性一样长。以下是我发现的一些事情......

  • 每个人都建议检查web.config 文件中“ sessionState ”节点的“ timeout ”属性。这个值可以直接在 web.config 文件中编辑,也可以通过上面@Romil 描述的 IIS 配置进行编辑(尽管 UI 在更高版本的 IIS 中发生了变化,但设置是类似的)。

  • 如果您正在实施表单身份验证,那么在 web.config 文件中还为此定义了一个额外的超时设置。在 web.config 中查找 ... system.web > authentication > forms节点,并将“超时”属性修改为所需的分钟数。

  • 这是我忽略的那个……在 IIS 中(肯定是 7.5 版,也许更早,但我无法确认)右键单击关联的应用程序池并选择“高级设置”。在标题“流程模型”(必要时展开)下查找设置“空闲超时(分钟) ”。将其设置为所需的超时时间(以分钟为单位)。--说明:虽然sessionState > timeout设置会影响在浏览器中存储您的会话 ID 的 cookie 的到期时间,但是timeout 实际上决定了工作进程(尚未使用的)何时应该关闭。一旦进程关闭,它就不再调用现有的会话 ID,因此浏览器 cookie 中的 ID 不再有用。

我希望这对那里的人有所帮助。这个问题让我疯狂了几个小时,除了设置 sessionState 设置之外,关于这个的信息很少,我真的很惊讶。

祝你好运,G