我有3臺機器,我們稱他們爲A,B(兩臺服務器)和Dev(我的本地機器)。MSMQ消息永遠不會交付 - 暫停時出站
我想從A發送一個消息隊列項B.
實際的C#代碼,我有相當簡單,說實話,我真的不認爲這是問題就在這裏。 (這是一個webapi,它接受一個POST的對象並將其推入隊列中)。
我可以發送這些消息很好從開發到B(雖然登錄到域管理員帳戶)沒有問題,我可以檢查郵件的正文。但是,我無法將消息從A發送到B.B上的專用隊列設置爲允許「Everyone」爲「完全控制」權限。
如果我暫停A上的出站隊列併發送消息,它們位於出站隊列中,並且正文與我預期的完全相同,但是當我再次恢復出站隊列時,它們永遠不會收到另一端在B.
我無法弄清楚我的生活發生了什麼。我嘗試了'TCP'方法,但我需要通過機器名稱而不是IP來引用我的隊列。
作爲參考,用來發送消息的代碼是:
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。這應該告訴你到底發生了什麼。 –