我正在使用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>
答案 0 :(得分:5)
将此内容包含在您的web.config文件中:
使用web.config
<sessionState timeout="minutes"/>
使用IIS
在Internet服务管理器中更改以下超时。选择大于默认值20的值。
选择默认网站&gt;属性&gt;主页目录&gt;应用程序设置&gt;配置&gt;选项。
启用会话状态超时并将会话超时设置为60分钟。
选择应用程序池&gt; DefaultAppPool&gt;属性。
在空闲超时下的“性能”选项卡中,设置空闲后关闭工作进程的值超过20。
IIS上的默认会话超时设置为20分钟,但最多可以增加到24小时或1440分钟。
答案 1 :(得分:4)
我最近一直在努力解决这个问题。似乎有多种地方可以设置超时,但您的超时只会与 设置的属性一样长。以下是我发现的一些事情......
正如大家建议的那样,检查web.config文件中“ sessionState ”节点的“超时”属性。这个值可以直接在web.config文件中编辑,也可以通过@Romil上面描述的IIS配置编辑(尽管在更高版本的IIS中UI已经更改,但设置类似)。
如果您正在实施Forms身份验证,那么web.config文件中还会定义一个额外的超时设置。寻找... system.web&gt;身份验证&gt;在web.config中创建节点,并将“超时”属性修改为所需的分钟数。
这是我忽略的那个......在IIS中(肯定是7.5版,可能更早,但我无法确认)右键单击相关的应用程序池并选择“高级设置”。在“流程模型”标题下(如果需要,展开),查找“空闲超时(分钟)”设置。将其设置为所需的超时(分钟)。 - 说明:当 sessionState&gt;超时设置会影响将会话ID存储在浏览器中的cookie过期,此超时实际上决定何时应关闭工作进程(尚未使用)。一旦流程关闭,它就不再回忆现有的会话ID,因此浏览器cookie中的ID不再有用。
我希望这对那里的人有帮助。这个问题让我疯狂了几个小时,除了设置sessionState设置之外,我对这方面的信息很少感到惊讶。
祝你好运, ģ答案 2 :(得分:0)
Romil 答案确实有效,我的方式是我只更改应用程序的会话超时而不是空闲超时。现在,按照他展示的方式从20分钟延伸到60分钟,它就有效了!