在 SQL Server 2008 中使用 MSDTC

sto*_*orm 5 sql-server-2008 sql-server msdtc

我用Hyper-v安装了一台windows 2008服务器机器,然后复制镜像创建另一台并更改计算机名称,它们都在同一个域中,我使用域用户作为管理员来配置它们。

安装 SQL Server 2008 后,我尝试了以下 T-SQL:

SET XACT_ABORT ON
GO

BEGIN DISTRIBUTED TRANSACTION
EXEC CatalogSQLServer.Catalog.dbo.Hello
ROLLBACK
Run Code Online (Sandbox Code Playgroud)

我第一次尝试?我得到的错误信息如下:

链接服务器 '' 的 OLE DB 提供程序 'SQLNCLI' 返回消息 '没有活动的事务

我 100% 确定我已配置 DTC、链接服务器并允许防火墙的所有入站和出站规则。我根据这些说明配置了MSDTC

之后,我尝试使用命令:

msdtc -uninstall 
msdtc -install 
Run Code Online (Sandbox Code Playgroud)

...然后重新启动 dtc 以在 CatalogSQLServer 上重新安装 msdtc。但这一次,当我执行测试脚本时,SSMS会一直执行很长时间但没有得到任何结果。有谁知道如何解决这个问题?

小智 1

首先检查您的计算机名称是否不超过 15 个字符,因为 MSDTC 依赖于NetBIOS,如果少于该字符,请按照 Microsoft 关于如何使用 DTCPing 工具解决 MS DTC 中的连接问题的说明进行操作。