DTC防火墙要求?

时间:2011-03-17 19:03:31

标签: c# transactions firewall transactionscope

我正在尝试建立一个环境,在该环境中,源自Web服务器(asp.net)的TransactionScope将通过WCF将事务流向应用程序服务器,然后再流入数据库。由于我被迫使用SQL Server 2005数据库,这通常会导致事务被“提升”为分布式事务(可以在此TransactionScope中包装多个服务调用),这意味着需要启用分布式事务协调器。

我已经成功地在一个本地机器上工作,其中Web服务器和应用服务器托管在同一台机器上,连接到远程数据库。 DTC在端口135上进行RPC连接(以及上限)的通信。我没有两个盒子设置来测试......对于DTC工作,是否需要打开端口135(从防火墙的角度来看)以便在Web服务器和应用程序服务器之间进行通信,或者只是在应用程序服务器上进行通信到数据库?我从部署人员那里得到关于从网络开放135到app服务器的回击,想知道这是否是必要的。我还没有在网上找到为我澄清这一点的文档。

有点像边缘问题,希望能有一些可能遇到过这种情况的人提供一些见解。

此致

GA

1 个答案:

答案 0 :(得分:0)

我认为它比DTC使用RPC调用进行协调更糟糕。您可能能够将这些修复到某个端口范围,但它很复杂。我有一个类似问题的项目 - 使用多个连接甚至同一服务器提升了对DTC的查询。在尝试导航防火墙问题失败后,我最终重构了代码以共享连接。我可以让它在我们的QA环境中工作,但不能在生产中使用。存在一些差异:QA是所有虚拟机,生产是SQL服务器上的真实硬件和集群。操作系统负载尽可能相似,但可能存在较小的补丁差异,因为QA框具有比生产框更广泛的应用程序。

这篇MSDN文章可能有些用处:http://support.microsoft.com/kb/306843