如何在SQL Server Express的本地实例上“唤醒”msdtc

时间:2014-05-05 15:45:08

标签: sql-server sql-server-express msdtc

我正在尝试使用MSDTC创建跨越SQL Server Express本地实例和SQL Server 2012数据库的事务。

我第一次在重新启动后运行单元测试时,当我尝试在事务中打开与本地服务器的连接时,我得到“msdtc不可用”,我可以多次运行测试并获得相同的结果。如果我进入组件服务,则计算机文件夹将为空约5秒钟,然后最终将显示My Computer。然后,我可以成功运行单元测试,而无需在“组件服务”窗口中执行任何操作。所以看起来组件服务窗口在后台启动了什么,但是什么呢?

For Each row As DataRow In ObjectIdsTable.Rows
    Using scope As New Transactions.TransactionScope
        Using serverCon = New SqlConnection(_serverConn)
            Using syncConn As New SqlConnection(_clientConn)
                serverCon.Open()
                syncConn.Open()  **ERROR HAPPENS HERE**

                ... Do work Here ...

            End Using
        End Using
        scope.Complete()
    End Using
Next

我想我可以重写代码以避免使用MSDTC,但这不正是它的用途吗?

1 个答案:

答案 0 :(得分:1)

我明白了。有一个名为Distributed Transaction Coordinator的服务,它被设置为手动启动。将其设置为自动修复问题。

这不是第一次被迫以完整/逻辑的方式呈现问题,以便创建一个正确的SO问题帮助我自己解决问题。