我不確定爲什麼,但只有經過一定的時間後,我的Web應用程序全局變量纔會丟失值以及會話變量。我在web配置文件<sessionState timeout="60" />
中設置。這是在我的本地主機上,我還沒有把它放在網絡服務器上,這可能是原因嗎?asp.net全局變量和會話變量在5-15分鐘後丟失值
回答
具有inproc會話狀態,如果應用程序池回收或關閉,您的會話信息消失。檢查應用程序池回收時發生的iis設置。我相信在20分鐘不活動之後會有一個默認關閉應用程序池。這可能會發生許多其他原因。如果您需要會話超越應用程序池的壽命,那麼您應該將其從proc中移出並運行在狀態服務器或數據庫或其他定製的服務器上。
我有一個Windows 7電腦,我該去哪裏檢查IIS? – user516883
打開iis管理器(最簡單的方法是打開windows鍵,然後開始輸入iis - 它會出現在列表中)。在機器名稱左側的樹視圖中,您將看到應用程序池的節點。點擊它會在右側的列表視圖中顯示應用程序池。點擊您的應用程序池,然後點擊右側的高級設置...鏈接。您將看到像Private Memory Lmiit(KB),Idle Time-out(分鐘),請求限制,常規時間間隔(分鐘)之類的事情。這些東西控制應用程序池的回收。 –
我想這不適用,如果你使用本地主機,我沒有看到我的管理工具中的任何地方iis。 – user516883
如果它在IIS中運行,你有Regular Time Interval (minutes)
或Idle Time-out (minutes)
到一個較低的值?這些設置可以在應用程序池的Advanced Settings...
下找到。
這也許不能解決你的問題,但你可以添加以下內容到頁面的OnInit的判斷會話是否已經實際超時或不:
override protected void OnInit(EventArgs e)
{
// Initialize the base Page class.
base.OnInit(e);
//If the session exists
if (Context.Session != null)
{
// IsNewSession indicates the session has been reset or the user's session has timed out.
if (Session.IsNewSession)
{
// new session, check for a cookie.
string cookie = Request.Headers["Cookie"];
// If there is a cookie does it contain ASP.NET Session ID?
if ((null != cookie) &&
(cookie.IndexOf("ASP.NET_SessionId") >= 0))
{
// Since it's a new session but an ASP.NET cookie exists, the session has expired. Notify the user.
throw new Exception("Your session has timed out. ");
}
}
}
}
- 1. 會話變量丟失值
- 2. Php全局變量丟失
- 3. ASP.NET C#會話變量丟失
- 4. 項目關閉後全局變量會丟失它的值
- 5. Javascript類的全局變量值丟失
- 6. ASP會話變量丟失
- 7. php會話變量丟失
- 8. 會話變量丟失mvc
- 9. 重定向後丟失會話變量
- 10. 重定向後丟失會話變量
- 11. ASP.NET會話或全局變量?
- 12. 更新值丟失會話變量
- 13. Php會話全局變量
- 14. javascript window.location和IE會話變量丟失
- 15. 全局變量在Facebook的GraphRequest後丟失值 - android
- 16. 失去全局變量值
- 17. 會話變量正在丟失?
- 18. Symfony會話變量在ipad中丟失
- 19. asp.net會話問題:重定向後變量丟失
- 20. 將ASP會話變量設置爲Javascript全局變量值
- 21. 後在會話變量變化的SessionID數據丟失
- 22. PHP聲明全局變量和會話變量
- 23. ASP.Net會話變量 - 設置會話變量,然後重定向
- 24. IE中的RedirectToAction會話變量丟失
- 25. 一頁丟失會話變量?
- 26. Symfony,jQuery.ajax()調用,會話變量丟失
- 27. 使用ConfigurationManager.RefreshSection()時丟失會話變量()
- 28. 局部變量丟失
- 29. 約25分鐘後會話丟失
- 30. ApplicationContext與全局變量在按下後丟失
什麼是將sessionState在你的網絡超時配置?在那段閒置時間過去之後,它會失去語境。 – Matt
請勿使用全局變量。多個請求可以同時觸及它們,這意味着多個不同的用戶可以同時觸摸它們。 –