为了账号安全,请及时绑定邮箱和手机立即绑定

在某些机器上,TransactionScope自动升级到MSDTC?

在某些机器上,TransactionScope自动升级到MSDTC?

C#
杨魅力 2019-06-24 10:17:35
在某些机器上,TransactionScope自动升级到MSDTC?在我们的项目中,我们使用TransactionScope来确保数据访问层在事务中执行它的操作。我们的目标是不要求在我们最终用户的机器上启用MSDTC服务.问题是,在我们一半的开发人员机器上,我们可以在禁用MSDTC的情况下运行。另一半必须启用它,否则他们将获得“[server]上的MSDTC不可用”错误信息。这真的让我绞尽脑汁,让我认真考虑回到一个基于ADO.NET事务对象的类似于TransactionScope的家用解决方案。这看起来很疯狂-同样的代码在我们的开发人员的一半上工作(而且不会升级)是吗?在另一个开发商那里升级。我希望能有更好的答案跟踪事务升级到dtc的原因。但不幸的是,事实并非如此。下面是一段会导致故障的代码示例,在试图升级的机器上,它尝试在第二个连接上升级。Open()(是的,当时没有其他连接打开)。using (TransactionScope transactionScope = new TransactionScope() {    using (SqlConnection connection = new SqlConnection(_ConStr)) {       using (SqlCommand command = connection.CreateCommand()) {          // prep the command          connection.Open();          using (SqlDataReader reader = command.ExecuteReader()) {             // use the reader             connection.Close();          }       }    }    // Do other stuff here that may or may not involve enlisting     // in the ambient transaction    using (SqlConnection connection = new SqlConnection(_ConStr)) {       using (SqlCommand command = connection.CreateCommand()) {          // prep the command          connection.Open();  // Throws "MSDTC on [SERVER] is unavailable" on some...          // gets here on only half of the developer machines.       }       connection.Close();    }    transactionScope.Complete();}我们一直在努力想办法解决这个问题。下面是它工作的机器的一些信息:开发1:Windows 7 x64 SQL 2008开发2:Windows 7 x86 SQL 2008开发3:Windows 7 x64SQL 2005 SQL 2008它不工作的开发人员:开发4:Windows 7 x64,SQL 2008 SQL 2005开发5:WindowsVista x86,SQL 2005开发6:Windows XP X86,SQL 2005My Home PC:WindowsVista家庭高级版,x86,SQL 2005我要补充的是,为了寻找问题,所有机器都已经完全修补了MicrosoftUpdate提供的所有内容。
查看完整描述

3 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

SQLServer 2008可以使用多个SQLConnection成一TransactionScope在不升级的情况下,只要连接不是同时打开的,这将导致多个“物理”TCP连接,因此需要升级。

我看到您的一些开发人员使用SQLServer 2005,其他开发人员使用SQLServer 2008。你确定你已经正确地识别了哪些是升级的,哪些不是?

最明显的解释是,使用SQLServer 2008的开发人员不会升级。


查看完整回答
反对 回复 2019-06-24
  • 3 回答
  • 0 关注
  • 534 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信