尽管我在web.config
中设置了超时时间,但会话会经常超时答案 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事件中,如果你想要的话,根本不写任何东西或写一个无效句子
就是这样(希望它能帮助你,因为它对我来说真的很成功)