私は3台のマシンを持っています。それらをA、B(両方のサーバー)、Dev(私のローカルマシン)と呼んでみましょう。MSMQメッセージは配信されません - 一時停止すると発信に入ります
私はからB.
に私が持っている実際のC#コードをメッセージキューアイテムを送信するには、かなりシンプルで、正直、私は本当にそれがここでの問題ではないと思います。 (POSTされたオブジェクトを受け取り、それをキューに押し込むwebapiです)。
私はこれらのメッセージをDevからBに(ドメイン管理者アカウントにログインしている間)問題なく送信でき、メッセージの本文を検査できます。しかし、私はAからBへのメッセージを送信することはできません。Bのプライベートキューは、 "Everyone"が "フルコントロール"のアクセス許可を持つように設定されています。
Aの発信キューを一時停止してメッセージを送信すると、発信キューに入り、本文はまったく同じになりますが、再送信キューを再開すると受信は行われませんBの反対側。
私の人生で何が起こっているのか分かりません。私は 'TCP'メソッドを試しましたが、IPではなくマシン名でキューを参照する必要があります。
参考のため、メッセージを送信するために使用されるコードは次のとおりです。
キューにメッセージを送信するプロジェクトがWEBAPIた:参照して、この出くわす他の誰のために
using (var queue = new MessageQueue($"FormatName:Direct=OS:MachineB\\private$\\Queue"))
{
var queueItem = new QueueItem();
queueItem.Object = this.postedObject;
var message = new System.Messaging.Message(queueItem);
queue.Send(message);
}
AとBの両方が同じドメインにありますか?また、Bのキューは、トランザクションキューか非トランザクションキューかですか? –
@tomredfern両方が同じドメインにあり(Devとともに)、非トランザクションです。 – Seb
両方のサーバーでMSMQのE2Eトレースを有効にします。 https://technet.microsoft.com/en-us/library/cc730882(v=ws.11).aspx。これは何が起こっているかを正確に伝えるはずです。 –