如何配置 MSDTC Service 来侦听特定 RPC 服务器端口http://blogs.msdn.com/b/distributedservices/archive/2012/01/16/how-to-configure-the-msdtc-service-to-listen-on-a-specific-rpc-server-port.aspx
场景
外围网络中有一个 Web 服务器,后端生产网络中有一个独立的 SQL Server (或 SQL Server 群集实例),防火墙将两个网络隔开。MSDTC 需要在 Web 服务器和后端 SQL Server 之间使用特定端口对其进行配置,以限制端口在两个网络之间的防火墙中打开。
举例来说,我们配置 MSDTC 令其使用端口 5000。
在前端 Web 服务器中需要做两件事来限制 MSDTC 将要使用端口。
- 配置 DCOM 可以使用的端口
- 配置可供 MSDTC 使用的特定端口
步骤
在安全配置选项卡中做如下设置:
- 选中“网络DTC访问(Network DTC Access)”
- 在客户端管理(Client and Administration)中选中“允许远程客户端(Allow remote Clients)”和“允许远程管理(Allow Remote Administration)”
- 在事务管理通讯(Transaction Manager Communication)中选“允许入站(Allow Inbound)”“允许出站(Allow Outbound)”“不要求进行验证(No Authentication Required)”
- 保证DTC登陆账户为:NT Authority\Network Service
1. 在 Web 服务器的 Run 菜单中启动 Dcomcnfg.exe 。
2. 扩展 Component Services,右键单击 My Computer,选择 Properties 。
3. 选择 Default Protocols 选项卡。
4. 单击 Properties 按钮。
5. 单击 Add 。
6. 输入 MSDTC 将要使用端口的端口范围。在本例中,我将使用端口 5001-6000。
7.单击 OK,返回 My Computer Properties 窗口,然后单击 OK。这一步很关键,为临时端口修改注册表。
8. 启动 Regedt32.exe 。
9. 找到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC 。
10. 右键单击 MSDTC 项,选择 New and DWord (32-bit) Value 。
11. 输入 ServerTcpPort 作为名称。
12. 右键单击 ServerTcpPort 项,然后选择 Modify 。
13. 将 Radio Button 改为 Decimal ,然后在Value Data 处输入 5000,单击 OK。下图为修改后的注册表项:
14. 重新启动 MSDTC Service (单机情况下)或在群集情况下在 Failover Cluster Manager 中运行 MSDTC Resource offline/online。
确认 MSDTC 使用了正确的端口:
- 打开管理命令提示符,运行 Netstat –ano 来获取端口和进程标识符( PID )
- 启动 Task Manager 并选择 Details 选项卡
- 找到 MSDTC.exe 并获取 PID
- 浏览输出并显示其是 MSDTC
现在 DTC 将会使用注册表中的特定端口,其他进程不会尝试使用与其相同的端口,从而防止了端口重叠