如何使 SQLServer Web 合并复制使用非默认端口?

How to make SQLServer Web Merge Replication use non-default port?

我正在为 SQL 服务器合并复制设置 Web 同步。我的 IIS 框在我的 DMZ 中,SQL 服务器机器在防火墙后面,所以我需要指定一个非默认端口(不是 1433)来访问发布者和分发者。我试过将其设置为 192.168.4.5_1234 和类似的 192.168.4.5:1234,其中 192.168.4.5 是我的防火墙 IP,1234 是端口号(好吧,无论如何我都在举例子)。

带有冒号的那个完全炸毁了,而且我相当确定这对于 windows 端口规范来说是错误的形式 - 我只是想证明我已经尝试过了。另一个给出了这个:

replmerg -Publisher [192.168.4.5_1234] -PublisherDB [MyDB] -Publication [MyPub] -Subscriber [ME] -SubscriberDB [MyPub] -SubscriptionType 2 -SubscriberSecurityMode 1 -Distributor [192.168.4.5_1234]

...

Message: The process could not connect to Distributor '192.168.4.5_1234'. 2017-10-25 21:53:27.892 Category:SQLSERVER Source: 192.168.4.5_1234 Number: 53 Message: Named Pipes Provider: Could not open a connection to SQL Server [53]. 2017-10-25 21:53:27.894 Category:SQLSERVER Source: 192.168.4.5_1234 Number: 53 Message: A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online. 2017-10-25 21:53:27.895 Category:SQLSERVER Source: 192.168.4.5_1234 Number: 0 Message: Login timeout expired 2017-10-25 21:53:27.896 Category:SQLSERVER Source: 192.168.4.5_1234 Number: 0 Message: The merge process failed to execute a query because the query timed out. If this failure continues, increase the query timeout for the process. When troubleshooting, restart the synchronization with verbose history logging and specify an output file to which to write.

为什么它尝试使用命名管道超出了我的范围,TCP/IP 在我的客户端协议中列在命名管道上方。

我在 Microsoft 的文档中注意到,它甚至没有告诉您如何执行此操作...他们只是说它将 "typically" 使用默认端口。这可能吗?有人让这个工作吗?

https://technet.microsoft.com/en-us/library/ms151255(v=sql.105).aspx

只需使用“,”:

192.168.4.5,1234