同じドメイン内の 2 台の別々のマシンにある 2 つのサービス間の msmq 通信をセットアップしようとしています。
マシンは 1 次 - 2 次の状況です。
プライマリから送信およびパージし、セカンダリから受信できるようにする必要があります
これを可能にするセットアップが見つからないようです。キューがセカンダリに存在し、プライマリが送信でき、セカンダリが受信できるセットアップが1つありましたが、必要に応じてプライマリからパージできませんでした。これは、キューがプライベートでリモートであるためだと思います。
そこで、状況をひっくり返してみました。キューをプライマリに配置しましたが、プライベート ローカル キューに送信できなかったため、それらをパブリックにしましたが、セカンダリでリモート パブリック キューを見つけることができません。
if (!MessageQueue.Exists(queueName))
{
//log they don't exist and exit
throw new Exception("One or more of the required queues do not exist");
}
syncQ = new MessageQueue(queueName){Formatter = new XmlMessageFormatter(new Type[] {typeof (String)})};
if (machineState == MachineState.Primary)
{
syncQ.SetPermissions(ASPConfiguration.SyncUser, MessageQueueAccessRights.FullControl, AccessControlEntryType.Allow);
syncQ.Purge();
}
プライマリ = ".\nw"
セカンダリ = "FormatName:Direct=OS:CACTEST-WS-D\nw"
必要なことを実行できる限り、キューがプライベートかパブリックかは問題ではありません。
助けてくれてありがとう。