我正在尝试使用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,但这不正是它的用途吗?
答案 0 :(得分:1)
我明白了。有一个名为Distributed Transaction Coordinator的服务,它被设置为手动启动。将其设置为自动修复问题。
这不是第一次被迫以完整/逻辑的方式呈现问题,以便创建一个正确的SO
问题帮助我自己解决问题。