我有两个 EC2 实例,一个在 IIS 中运行网站,另一个托管 SQL-Server 实例。网站与此服务器的通信正常,可以毫无问题地从数据库中提取数据。但是,当我去编写一组数据时,我使用的是 DTC,这给我带来了问题。当我尝试写入(并因此包含在事务中)时,我收到以下错误消息:
由于通信问题,MSDTC 事务管理器无法从源事务管理器中提取事务。可能的原因是:存在防火墙并且它对 MSDTC 进程没有异常,两台机器无法通过它们的 NetBIOS 名称找到彼此,或者两个事务管理器之一未启用对网络事务的支持。(来自 HRESULT 的异常:0x8004D02B)。
如果我从 SQL 实例运行 DTCPing.exe 到 IIS 实例,我会得到以下结果:
09-20, 12:19:12.861-->开始 RPC 测试 (-->WIN-I9MDBIKCVAD) 问题: 在 dtcping.cpp @303 调用远程 RPC 方法错误(0x6BA) --> RPC ping 异常 --> 1722(RPC 服务器不可用。) RPC 测试失败
我尝试过的事情:
- 确保在两台服务器上使用的 IAM 安全组设置中允许使用端口 3372
- 尝试在安全组设置中启用“所有 TCP”和“所有 UDP”
- 将另一台机器的 net bios 名称的主机文件条目添加到为每个实例设置的弹性 IP 确保在两台服务器上都启用并配置了 MSDTC
- 确保 RPC 服务在两台机器上运行
有人对可能导致此问题的原因有任何建议吗?
谢谢