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
。
私は少なくとも十数回再起動しました!
クライアントがメッセージをキューに送信するたびに、最終的にローカル キューではなく送信キューになります。正しいマシン名または localhost を使用すると問題なく動作します。
私は何かを逃しましたか?