2009-12-02 97 views
0

我有一個.Net 3x應用程序,它使用默認的WCF序列化和最近設置的應用程序來使用SQL Server會話狀態,並且不能將這些對象存儲在與sql server的會話狀態中,只能在proc會話狀態。導致序列化錯誤的SQL Server會話狀態

在各種類別上發生錯誤,說明:

無法序列化會話狀態。在'StateServer'和'SQLServer'模式下,ASP.NET將序列化會話狀態對象,因此不允許使用不可序列化的對象或MarshalByRef對象。如果自定義會話狀態存儲在「自定義」模式下進行類似的序列化,則適用相同的限制。

我認爲默認的wcf序列化就足夠了,但顯然不是。關於需要做些什麼來糾正編輯整個應用程序和將[Serializable]添加到類的短小的任何想法?

回答

1

好像你有四種選擇:

  1. 切換回是InProc模式
  2. 使對象[Serializable接口]
  3. 而不是在會話字典存儲高層次的容器對象,請使用下而是已經可序列化的對象(如字符串,整數等)
  4. 避免使用傳統的會話狀態,而改用一些替代的狀態管理方法代替

選項3通常運行速度快於2,但它也是更多的工作。

相關問題