Tag: msdtc

无法开始分布式事务

我试图对链接的服务器运行SQL,但我得到的错误。 BEGIN DISTRIBUTED TRANSACTION SELECT TOP 1 * FROM Sessions OLE DB provider "SQLNCLI" for linked server "ASILIVE" returned message "No transaction is active.". Msg 7391, Level 16, State 2, Line 3 The operation could not be performed because OLE DB provider "SQLNCLI" for linked server "ASILIVE" was unable to begin a distributed transaction. 提供者返回了两个错误: […]

如何在SQL Server上启用MSDTC?

这甚至是一个有效的问题吗? 我有一个使用MSTDC的.NET Windows应用程序,它引发一个exception: System.Transactions.TransactionManagerCommunicationException:分布式事务pipe理器(MSDTC)的networking访问已被禁用。 请使用组件服务pipe理工具—> System.Runtime.InteropServices.COMException(0x8004D024)在MSDTC的安全configuration中启用DTC以进行networking访问:事务pipe理器已禁用其对远程/networking事务的支持。 (Exception from HRESULT:0x8004D024)at System.Transactions.Oletx.IDtcProxyShimFactory.ReceiveTransaction(UInt32 propgationTokenSize,Byte [] propgationToken,IntPtr managedIdentifier,Guid&transactionIdentifier,OletxTransactionIsolationLevel&isolationLevel,ITransactionShim&transactionShim)…. 我遵循Kbalertz指南,在安装了应用程序的PC上启用MSDTC ,但仍然出现错误。 我想知道这是否是一个数据库问题? 如果是的话,我该如何解决呢?

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

在我们的项目中,我们使用TransactionScope来确保我们的数据访问层在事务中执行它的操作。 我们的目标是不要求我们的terminal用户的机器上启用MSDTC服务。 麻烦的是,在我们的一半开发人员机器上,我们可以禁用MSDTC来运行。 另一半必须启用它或他们得到“MSDTC on [服务器]不可用”错误消息。 这真让我挠头,让我认真考虑回滚到基于ADO.NET事务对象的基于TransactionScope的解决scheme。 这看起来很疯狂 – 对我们开发人员的一半工作(而不是升级)相同的代码在其他开发人员的升级。 我希望有一个更好的答案跟踪为什么交易升级到DTC,但不幸的是它不。 下面是一些会导致麻烦的代码示例,在尝试升级的机器上,尝试在第二个连接上升级。打开()(是的,当时没有其他连接打开)。 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 […]