Permissions
當使用者沒有隊列權限時發送的 MSMQ 消息會發生什麼情況
做一些測試,看起來如果我嘗試將消息發送到使用者被拒絕“發送消息”權限的隊列,發送的消息就會消失。它不會出現在死信隊列、傳出隊列或我想查看的任何其他地方。發送消息時也不會引發任何類型的異常。
該消息發生了什麼?它真的只是被吃掉還是我錯過了什麼?
這是我用來發送消息的程式碼:
var q = new MessageQueue(@"[ComputerName]\Test"); q.Send("foo");
預設情況下,MSMQ 將丟棄所有因任何原因無法傳遞的消息。除非您發送到本地電腦,否則不會有錯誤消息。
發送到遠端電腦時,只有當您無法將消息放入傳出隊列中時才會收到錯誤消息,這無助於傳遞到遠端隊列。發送到本地機器時,沒有傳出隊列機制,本地隊列管理器將嘗試將消息直接放入所需的隊列中,這樣您就可以收到錯誤消息。
您需要啟用 Negative Source Journaling,以便將消息的副本放入相應的死信隊列,以便找出未送達的原因。
乾杯
約翰·布雷克韋爾