我使用StructureMap存儲會話對象:結構圖HttpSessionLifecycle對象序列化
config.For<SessionContext>().LifecycleIs(new HttpSessionLifecycle());
,一切工作正常,所以我可以容易DI檢索會話對象。
但現在我需要將我的會話從進程中切換到數據庫,但我收到以下錯誤。
無法序列化會話狀態。在「StateServer」和 「SQLServer」模式下,ASP.NET將序列化會話狀態對象 ,結果不允許不可序列化的對象或MarshalByRef對象爲 。如果類似序列化 由自定義會話狀態存儲以「自定義」模式完成,則適用相同的限制。 ---> System.Runtime.Serialization.SerializationException:類型 'StructureMap.Pipeline.MainObjectCache'in Assembly'StructureMap, Version = 2.6.2.0,Culture = neutral,PublicKeyToken = e60ad81abae3c223'is 未標記爲可序列化。
我該如何解決這個問題?
爲什麼減號?任何人都能解釋? –
會話中的每個對象都標記爲「[Serializable]」嗎? – Jay
@Jay:是的,我的所有課程都是可序列化的。結構映射中的問題,它以某種方式將會話對象與其無法序列化的類相關聯,請參閱上面的錯誤。 –