【问题标题】:SQL Server Session State causing Serialization errorSQL Server 会话状态导致序列化错误
【发布时间】:2010-05-26 10:00:07
【问题描述】:

我有一个使用默认 WCF 序列化的 .Net 3x 应用程序,最近设置应用程序以使用 SQL Server 会话状态,并且无法将这些对象存储在与 sql server 的会话状态中,只能在 proc 会话状态下。

获取各种类的错误说明:

无法序列化会话状态。在“StateServer”和“SQLServer”模式下,ASP.NET 将序列化会话状态对象,因此不允许不可序列化的对象或 MarshalByRef 对象。如果自定义会话状态存储在“自定义”模式下完成类似的序列化,则适用相同的限制。

我认为 wcf 的默认序列化就足够了,但显然不是。关于需要做些什么来纠正编辑整个应用程序并将 [Serializable] 添加到类中的任何想法?

【问题讨论】:

    标签: sql-server session-state


    【解决方案1】:

    看来你有四个选择:

    1. 切换回 InProc 模式
    2. 使您的对象 [Serializable]
    3. 不要将高级容器对象存储在 Session 字典中,而是使用已经可序列化的低级对象(例如字符串、整数等)
    4. 避免使用传统的会话状态,改用其他的状态管理方法

    选项 3 通常会比 2 运行得更快,尽管它也需要更多的工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-28
      • 2018-12-01
      • 2023-03-10
      • 1970-01-01
      相关资源
      最近更新 更多