2011-03-28 28 views
0

我有一個奇怪的問題: 我有一個網站有一個管理系統。asp.net session dissappers

在系統中有一種方法來編輯我的輸入。爲了使這更容易,我可以搜索他們的ID來找到它們。

問題是,當頁面回發會議變量我舉行「登錄」的價值,變成什麼都沒有..我被踢出。爲什麼會發生?如果有其他說明,會話變量應該至少保持20分鐘?

編輯:它適用於同事,但不適合我。此外,它只對某些輸入做它。

EDIT2:原來我得到一個異常。但它不說什麼,只說「財產評估失敗」。我得到它的代碼行:

Response.Redirect("./admin.aspx?search=" + u.FirstOrDefault.ProductID.ToString, False) 

而且sience它通過這一說法,它不是因爲它是如果遇到異常不設置到對象

If u.Any Then 
+0

你能發表一些你的代碼嗎? – hallie 2011-03-28 09:28:49

+0

你可以發佈一些代碼,以便於調查問題嗎? – 2011-03-28 09:29:48

+0

我可以發佈代碼,但是什麼代碼是相關的? sience我不會刪除/ abadon會話中的任何地方的會話.. – Jimmy 2011-03-28 09:45:41

回答

2

的一個實例的objectreference您的會話可能會重新啓動。 創建一個Global.asax並設置斷點到的Application_Error,Session_End中和在session_start事件,根據您的更新追查問題

編輯: 確保u.Count == 1,因爲FirstOrDefault將拋出例外,如果計數> 1

看一看這個鏈接http://support.microsoft.com/kb/312629/EN-US/這將覆蓋原來的問題 http://forums.asp.net/t/1296202.aspx/1

+0

這可能是這樣,生病檢查它 – Jimmy 2011-03-28 09:47:39

+0

沒有得到任何錯誤:/ – Jimmy 2011-03-28 09:56:50

+0

@Jimmy:但Session_Start的斷點被擊中,對吧?如果不是這樣,你應該檢查你是否用String.Empty或類似的東西覆蓋你的「登錄」值 – citronas 2011-03-28 10:17:24

0

如果你有Web園啓用(應用程序池多個工作進程),這可以解釋蘇行爲 - 在那裏。

要麼有一個池的工作進程,要麼切換到Database driven Session

+0

我不這麼認爲,如果它不標準。 – Jimmy 2011-03-28 09:57:21

+0

@Jimmy只要檢查IIS配置,它應該在應用程序池屬性下。 – 2011-03-28 11:21:32

0

您是否啓用了cookies?如果沒有,這將解釋這種行爲。特別是當你聲明它對同事有用時,你可以推斷這是一個客戶端問題。

+0

是的,cookies已啓用。 – Jimmy 2011-03-28 10:15:49