c# - 两个远程 sql 连接时 Transactionscope 不工作

标签 c# ado.net transactions mstdc

我在我的 C# 控制台应用程序项目中使用了两个 SQL Server 连接对象。我需要在单个事务中执行此操作所以我使用了 Transactionscope(分布式事务)

我无法在事务范围内使用连接它正在显示错误

服务器上的 MSDTC 不可用。

我该如何解决....一个sql连接是远程服务器,另一个是本地 服务器。

注意:- msdtc 服务已经启动。

服务器在两台机器上启动。我仍然面临这个问题。我是否需要关闭本地 Intranet 计算机中的防火墙。

最佳答案

无论何时执行分布式事务,Microsoft 分布式事务协调器都需要在本地计算机和参与事务的所有服务器上运行。如果你有防火墙,你还需要确保你已经限制了 MSDTC 通信的端口,并在你的防火墙配置中添加了适当的规则以允许连接——我相信它需要 portmapper 访问以及特定端口您为 RPC 选择的范围。还有各种需要同步的 MSDTC 安全设置,用于控制服务器之间的身份验证方式。

以下是一些可能有用的链接:

  1. MSDTC at MSDN
  2. MSDTC Troubleshooting
  3. MSDTC and Firewall Issues

关于c# - 两个远程 sql 连接时 Transactionscope 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/944372/

相关文章:

database-design - 事务处理 : How are simultaneous transaction managed?

c# - 开放满足多接口(interface)的通用单例服务注册

c# - 有什么方法可以提高 Regex.Replace 性能吗?

控制台应用程序的 C# 箭头键输入

c# - 如何将参数传递给sql 'in'语句?

mysql - MySql 存储过程中的事务

c# - 紧急回滚后如何将回滚的变更集+修复 checkin TFS

c# - ADO 存储过程缺少参数错误...

asp.net - 为什么在客户端请求之间打开数据库连接是一个坏主意?

sql - 更新事务内的外键失败