我在我的 C# 控制台应用程序项目中使用了两个 SQL Server 连接对象。我需要在单个事务中执行此操作所以我使用了 Transactionscope(分布式事务)
我无法在事务范围内使用连接它正在显示错误
服务器上的 MSDTC 不可用。
我该如何解决....一个sql连接是远程服务器,另一个是本地 服务器。
注意:- msdtc 服务已经启动。
服务器在两台机器上启动。我仍然面临这个问题。我是否需要关闭本地 Intranet 计算机中的防火墙。
最佳答案
无论何时执行分布式事务,Microsoft 分布式事务协调器都需要在本地计算机和参与事务的所有服务器上运行。如果你有防火墙,你还需要确保你已经限制了 MSDTC 通信的端口,并在你的防火墙配置中添加了适当的规则以允许连接——我相信它需要 portmapper 访问以及特定端口您为 RPC 选择的范围。还有各种需要同步的 MSDTC 安全设置,用于控制服务器之间的身份验证方式。
以下是一些可能有用的链接:
关于c# - 两个远程 sql 连接时 Transactionscope 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/944372/