2008-11-03 81 views
1

我有一個網頁,用戶選擇一家公司,並通過會話記錄公司名稱,但是當我進入下一頁時,會話只持續5分鐘? 任何原因爲什麼以及如何解決這個問題,我確實擴展了Web.config中的會話狀態,但沒有奏效。爲什麼我在5分鐘內失去了會話變量?

實施例:會話( 「公司名稱」)= 「字節技術」

在我的web.config我有: 超時= 「40」/>

我從Default.aspx的移動到CompanyDetail。 aspx與我的會話(「CompanyName」)

但是,如果我讓程序在CompanyDetail.aspx中閒置,我將失去會話狀態。

任何想法?

問候 艾蒂安

回答

0

感謝大家的所有信息。託管我的網站的公司只是延長了應用程序池的時間,並且工作正常!

感謝 艾蒂安

4

一些問題:

  • 的超時時間永遠是一樣的嗎? 5分鐘?
  • 是您的網站在負載平衡服務器場中運行嗎?有多個前端服務器?
  • 你在關於會話和會話狀態的配置中告訴你什麼?
+0

是的,如果我讓頁面閒置超過5分鐘我失去我的會話。 是的,我認爲我的網站運行在一個負載平衡服務器農場.....我沒有做託管,另一家公司正在爲我做。 這是我告訴我的web.config。 Etienne 2008-11-03 08:07:33

1

在IIS中,進入您的網站的屬性,單擊主頁目錄選項卡,然後單擊配置按鈕。在這裏,單擊選項選項卡並檢查會話超時。我很確定這隻會影響傳統的ASP,但我不是100%確定的。

1

如果發生這種情況總是在5分鐘,然後檢查web.config的會話設置,並檢查IIS:網站/屬性/ ASP.NET,單擊編輯配置,選擇狀態管理選項卡,並檢查會話設置。

0

服務器上是否會出現一些導致Web應用程序每5分鐘自動重置一次的防病毒軟件,ASP.NET運行時認爲二進制還是web.config發生了更改?這也是可能的。

6

從你的評論我看到你認爲你的網站是在一個負載平衡的服務器場。

在這種情況下,您需要將會話存儲在數據庫中或避免使用它:您不能確定同一臺服務器每次執行回發時都會爲同一用戶服務,而且如果用戶從服務器「A」到服務器「B」在兩個不同的職位......您的會話變量丟失。

嘗試谷歌搜索「sessionstate數據庫」,你會發現在這個噸的東西。

希望這有助於

安德烈

+0

感謝您的回覆,我會從託管我的網站的公司中找到並告訴他們檢查所有這些。我不能使用Sessions,因爲我在我的網站上的任何地方都使用它。去看看www.erate.co.za。關於Etienne – Etienne 2008-11-03 08:37:51

+0

如果你有一個你可以訪問的sql server數據庫,那麼你可以考慮爲自己創建必要的數據庫內容 - 如果提供者沒有幫助。再見! – ila 2008-11-03 08:43:57

0

另一個想法是把機器名進入評論頁面上,看看是否是從頁頁改變只是爲了確認存在的一個變化處理請求的服務器。

3

我打賭你不使用負載均衡的農場,實際上使用共享主機。

在負載均衡服務器場中,您的代碼部署到多個服務器,並且如果禁用了粘性會話,則用戶將在每個請求上使用負載最少的服務器。

由於您使用的是第三方託管,我非常懷疑您正在這樣做。

會話超時可以由主機提供商在IIS中硬設置,最有可能的罪魁禍首是他們已將此設置爲5分鐘。

致電您的主機提供商,詢問他們的IIS會話設置是什麼,然後從那裏去。

0

我決定使用Session變量報廢並與查詢字符串去!好多了!!

相關問題