繁体   English   中英

ASP.NET Session TimeOut问题

[英]ASP.NET Session TimeOut problem

我在我的一个ASP.net应用程序中有一个有线场景。

我使用自定义“roleManager”的ASP.net成员资格,

并在web.config中使用以下标记来限制任何没有“关键字”(角色)角色的用户访问“关键字”(路径)文件夹

<location path="Keywords">

<system.web>

<authorization>

<allow roles="Keywords"/>

<deny users="*" />

</authorization>

</system.web>

</location>

如果任何具有其他角色的用户允许评估此URL(在这种情况下为关键字)将被重定向到自定义访问被拒绝页面。

现在工作正常,但当我离开我的应用程序时,我的应用程序处于不活动状态30分钟,我无法访问“关键字”,所有时间我最终都会使用自定义访问被拒绝页面,如果我关闭浏览器,再次登录它开始工作正常。

在这种情况下请帮助我。

提前致谢

我认为ASP.NET会话在默认情况下会在20分钟后超时。

您可以通过在Web.config中指定更长的时间(以分钟为单位)来扩展它:

<system.web>
    <sessionState timeout="60"/>
    ...
</system.web>

如果您通过表单进行身份验证,则应提高身份验证cookie超时值以匹配。

还要记住,在IIS下运行站点时,您应该将应用程序池的空闲时间扩展到类似的状态。 如果不这样做,将卸载ASP.NET站点的HttpApplication实例,从而销毁该进程中的所有活动会话。

通常,第一个也是最容易做的就是将configuration/system.web/sessionState@timeout值更改为类似“90”的值

<sessionState timeout="90" />

它似乎在20分钟后超时。 * 这没有任何意义,它明确表示会话超时应该是90分钟。 *

这里有几个问题联系在一起:

  1. 应用程序池的工作进程默认空闲超时也设置为20分钟
  2. 存储会话状态的默认模式是在IIS进程中

通过单击应用程序所分配到的应用程序池上的“属性”(IIS 6)或“高级设置”(IIS 7.5),可以找到应用程序池的设置。

确保将“ 空闲超时(分钟) ”的值设置为会话超时(至少为90),以确保所有会话在整个会话超时期间保持不变。

试试这个解决方案如果还有问题请参考这篇文章告诉更多选项

http://asp-net.vexedlogic.com/2012/05/23/aspasp-net-session-timeout-how-do-i-change-it/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM