我正在使用 msmqIntegrationBinding 将消息发送到旧版 MSMQ。我希望能够在 preprod 中使用与生产中相同的配置文件,但在 preprod 中,遗留队列是本地的,而生产队列在另一台服务器上。
我以为我可以使用 DNS 别名来做到这一点。
我已在我的 preprod 服务器上的 HOSTS 文件中将 DNS 别名设置为 127.0.0.1
127.0.0.1 CRM_SERVER
我已将客户端中的端点配置为使用 DNS 别名的 DIRECT OS 格式名
<endpoint name="LegacyMsmqService"
address="msmq.formatname:DIRECT=OS:CRM_SERVER\crmintegration"
binding="msmqIntegrationBinding"
contract="Integration.Facades.ILegacyMsmqService"
bindingConfiguration="msmqIntegrationBinding"/>
我已将HKEY_LOCAL_MACHINE\Software\Microsoft\MSMQ\Parameters\IgnoreOSNameValidation
注册表项设置为 1,并且我什至添加CRM_SERVER
了该项HKEY_Local_Machine\System\CurrentControlSet\Services\LanmanServer\Parameters\OptionalNames
。
我已经重启了至少十几次!
每当我的客户端向队列发送消息时,它都会在传出队列上结束,而不是在本地队列上。使用正确的机器名称或本地主机可以正常工作。
我错过了什么吗?