【发布时间】:2012-11-02 17:00:02
【问题描述】:
我们在不同的数据库服务器(MS SQL Server 2008)上有两个数据库。
我们需要在两张表中插入数据,两台数据库服务器各一张,而且都需要在一个事务中,所以我们需要一个分布式事务。
我们从 .NET 程序中插入数据,我认为这里有两个选择:
在 .NET 中使用 TransactionScope 类来启动分布式事务。这在我的开发机器上的测试环境中工作,但只有在我设置 DTC 以允许与网络通信之后。但是,.NET 应用程序最终将在客户端计算机上运行,并且他们可能没有在其操作系统上相应地设置 DTC。他们是“普通”用户,他们的机器上没有管理员。
所以我的第一个问题是:即使没有设置 DTC,我能否在计算机上使用 .NET 中的 TransactionScope 类 - 他们是否可以通过我的 .NET 程序以编程方式解决这个问题?
如果 .NET 方式不是一个选项,那么使用存储过程通过链接服务器构建分布式事务是否是个好主意?
感谢大家的回复!
【问题讨论】:
-
如果客户的机器与您的数据库有关,那么您可能会认为与您的应用程序有关。你能详细说明一下吗?
标签: .net sql-server-2008 linked-server msdtc distributed-transactions