2010-03-13 73 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事件,只是不寫什麼或寫非生效判決,如果你想

並且那它(希望這會幫助你,因爲這是對我來說是真正的成功)