2010-03-13 41 views

回答

2

检查,以确保您的ASP.NET工作进程没有被回收。如果这被回收,你的会议是烤面包。查看服务器的事件日志以获取详细信息。

+0

是的,尤其是如果它是一个开发Visual Studio网站项目(在新代码被删除时重新编译),并且如果有人正在更新网站动态页面或代码,则在进行修改时将被回收。 – 2010-03-14 01:00:26

0

为了查看您的超时时间,请打印Session.Timeout到aspx页面并查看超时是否已更改。

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

应该做的工作。

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

0

确保Session.Timeout value没有被设置不同代码的某处。在全球范围内寻找您的解决方案。

检查您的Session.SessionId property value是否通过在您正在使用的页面上打印出来或通过使用调试工具进行检查而发生实际变化。如果它早期发生变化,那么你肯定会知道,否则也许一些流氓代码只是清除会话变量,它看起来好像会话超时。

除此之外,用户bilb已经涵盖了工作流程信息,我留下了一个comment there关于为什么我认为可能发生,而不是在这里重复它。

0

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

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

我面临这个问题与我工作所以最近一个非常大的项目,会话获取指定时间之前已超时,我尝试了所有的技巧,但没有工作,直到我想通了,为什么不加入定时器的页面,每隔一段时间回发,以保持会话活着,它的工作,所以这里是交易:

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事件,只是不写什么或写非生效判决,如果你想

并且那它(希望这会帮助你,因为这是对我来说是真正的成功)