虽然我在web.config中设置了超时时间,但会话会经常超时

时间:2010-03-13 14:00:03

标签: c# asp.net

尽管我在web.config

中设置了超时时间,但会话会经常超时

5 个答案:

答案 0 :(得分:2)

检查以确保您的ASP.NET辅助进程未被回收。如果这个被回收,你的会话就会干杯。检查服务器的事件日志以获取详细信息。

答案 1 :(得分:0)

要查看超时,请将Session.Timeout打印到aspx页面,查看超时是否发生了变化。

The session timeout is <%=Session.Timeout%>.

应该做的。

当然,您也可以在Session.Timeout文件中设置global.asax属性。

答案 2 :(得分:0)

确保代码库中某处 Session.Timeout value的设置不同。在您的解决方案中为该物业进行全局查找。

通过在您正在使用的页面上打印Session.SessionId property value或通过使用调试工具进行检查来检查comment there是否实际发生了更改。如果它提前更改,那么您肯定会知道,否则可能某些流氓代码只是清除会话变量,并且看起来好像会话超时了。

除此之外,用户bilb已经涵盖了工作流程信息,我留下了{{3}}关于我认为可能发生的原因,而不是在此重复。

答案 3 :(得分:0)

您确定它是您的会话而不是超时的表单身份验证Cookie吗?他们没有关系。

<forms loginUrl="Login.aspx" protection="All" timeout="30"  ....

答案 4 :(得分:0)

我正面临着这个问题,我最近正在研究一个非常大的项目,会话在指定时间之前超时,我尝试了所有技巧但没有工作直到我弄清楚为什么不添加Timer到每隔一段时间回发一次以保持会话活着并且有效的页面,所以这是交易:

1)在你的asp.net页面中放置一个计时器(但是计时器必须放在一个更新面板中,这样它就不会弄乱页面:

<asp:UpdatePanel ID="pnlControls" runat="server">
<asp:Timer ID="tmrLive" runat="server" OnTick="tmrLive_Tick" Interval="50000"></asp:Timer>
</asp:updatePanel>

2)在trmLive_Tick事件中,如果你想要的话,根本不写任何东西或写一个无效句子

就是这样(希望它能帮助你,因为它对我来说真的很成功)