2009-11-18 88 views
2

在頁面加載我填充我自己的對象,在會話中存儲&它獲得存儲, 當我調試我可以看到,對象存儲在會話,但當我讀會話變量..它是空,對象獲取存儲在會話,但在檢索它是空

驚喜地我能夠使用其他會話變量,

Howerver我能夠獲取會話變量時我SessionState的=「InProc方式」 ......當sessionstate ='StateServer'或sessionstate ='SQLServer'時,我得到它null

I 'VE保持會話超時= 「20」, 在我添加的頁面的EnableSessionState = 「真」

請幫幫忙, - PRASHANTç

+0

你能發佈你的代碼嗎?如果你可以使用其他會話變量,你做什麼不同? – Peter 2009-11-18 08:55:53

+0

標記你的類爲Serializable和實施IDeserializationCallback http://support.microsoft.com/kb/312112 – PRR 2009-11-18 11:25:46

回答

2

您的類型是否實現了ISerializable(直接或間接,也許通過繼承)? in-proc和其餘的最大區別在於in-proc不會序列化,所以序列化是首先要看的。這聽起來很奇怪,但如果它是「關閉」的話,我希望得到一個異常或一個未初始化的對象 - 不是空值。也許一個愚蠢的問題,但傳入的請求肯定有所有正確的標題/ cookie?即它仍然知道它在哪個會話中?

爲了解釋,如果既不您的類型實現ISerializable也不[Serializable]我期望一個例外;你已經添加了[Serializable],但事實上它已經不是錯誤,所以我認爲在組合中有一些ISerializable

+0

大家好,這個問題就解決了...... 我做了一個愚蠢的錯誤。我已經忘了添加[序列]包含在我的包裝類的數據成員的類定義.. [seriablizable] 類class_first { ... class second = new class_second(); ... } 我只class_first作出[可序列化],而不是class_second ... 我沒有finiding因爲一個錯誤處理模塊中的任何錯誤.. 但我希望這有助於所有其他 我真的很感謝你的時間和幫助, 乾杯! - Prashant C – user213581 2009-11-18 12:30:37

1

SessionState的=' 的StateServer」或SessionState的= 'SQLServer的' 要求你的對象是可序列化的。

+0

感謝您的答覆。我已經添加了.. [Serializable接口] 公共MyClass類 { .. } 仍然有同樣的效果......有沒有其他方法可以做到這一點? – user213581 2009-11-18 09:21:49

+0

請求。發佈演示代碼。 – Arthur 2009-11-18 09:52:15