代码之家  ›  专栏  ›  技术社区  ›  Jonas

序列化.Net SqlTransaction?

  •  2
  • Jonas  · 技术社区  · 15 年前

    我们有一个有趣的设置,其中我们将SqlTransactions持久化到web应用程序的应用程序内存中。我们正在研究将我们的web应用程序转移到NLB场景中,因此我们需要一种方法使这些事务不绑定到单个计算机的内存。有没有什么办法可以做到这一点..我试过序列化一个SqlTransaction和一个SqlCommand,但似乎都不起作用。我需要开始调查系统事务处理命名空间?

    5 回复  |  直到 15 年前
        1
  •  2
  •   Steven Sudit    15 年前

    我不相信这行得通。事务被设计成临时的和本地的。

    编辑

        2
  •  1
  •   John Saunders    15 年前

    存储一个 SqlTransaction 在里面 Application


    我想你应该知道 应用 状态由所有用户共享。

    你为什么用这个 应用 Session 会议 可以跨负载平衡器工作,使用状态服务器或SQL Server形式的会话持久性。

        3
  •  0
  •   Randolpho    15 年前

    你可以看看 Distributed Transaction Coordinator . 我个人没有用它来处理多个请求之间的事务,但这就是它的目的。这个链接是COM和Win32的开发者指南。这里是 a tutorial 认为 可能会帮助你开始.NET方面的工作。

        4
  •  0
  •   quillbreaker    15 年前

    我以前没有做过这种事情,但是SqlTransaction有一个CreateObjRef方法,它返回一个ObjRef,它是可序列化的。而ObjRef似乎就是你应该反复思考的东西。

    ObjRef Class

        5
  •  0
  •   mP.    15 年前

    首先,序列化仅用于捕获值/值类型sstudf的快照,如字符串、数字等。事务是指在短时间(超时)内对特定用户具有x资源(通常是到数据库的连接)的“活动”事务。因为这些东西是不断变化的,如果可能的话,序列化然后恢复它们会把事情搞砸,因为很多事情都会改变,你会有混乱。

    如果事务本来是可序列化的,那么它们就已经实现了接口,那么您所要求的只是简单的错误/愚蠢。