我在C#控制台应用程序项目中使用两个SQL Server连接对象。我需要在单个事务中执行此操作所以我使用了Transactions(分布式事务)
我无法在transactionscope中使用连接它正在显示错误
服务器上的MSDTC不可用。
我该如何解决....一个sql连接都是远程服务器而另一个是本地连接 服务器
注意: - msdtc服务已经启动。
服务器在两台机器上启动。我仍然面临这个问题。我是否需要关闭本地Intranet计算机中的防火墙。
答案 0 :(得分:2)
启动MSDTC服务。
在命令提示符下:
net start msdtc
或者来自Services MMC。找到“分布式事务处理协调器”并单击“开始”。
答案 1 :(得分:2)
如果你很难让DTC好好玩(特别是当涉及防火墙或SQL群集时),那么DTCPing是一个很好的工具(微软)来识别它。请注意,(IIRC)您需要能够双向DTCP
答案 2 :(得分:2)
每当执行分布式事务时,Microsoft分布式事务处理协调器都需要在本地计算机和参与事务的所有服务器上运行。如果你有防火墙,你还需要确保限制MSDTC通信的端口,并为防火墙配置添加适当的规则以允许连接 - 我相信它需要端口映射器访问以及特定端口您为RPC选择的范围。 MSDTC还有各种安全设置需要同步,以控制服务器之间的身份验证方式。
以下是一些可能有用的链接:
答案 3 :(得分:1)
我最近在一个项目上遇到了同样的问题。不幸的是,我没有权利能够启动MSDTC,如另一个答案所述。如果您处于相同的情况,我建议您阅读我之前发布的有关此问题的问题。
答案 4 :(得分:0)
只是一个想法,你可能已经尝试过了。如果您已确认MSDTC服务正在运行,您是否查看了运行服务的计算机上的事件日志?您可能会从那里的服务中找到错误信息。