[英]MSMQ Send message to Remote Queue
我正在嘗試將消息發送到遠程隊列。 我的進程沒有失敗,但我仍然沒有看到遠程隊列上的消息? 如果它無法處理消息,我會認為它會失敗?
我注意到在我的本地計算機上遠程隊列列在Outgoing隊列中,但是也沒有看到消息。 這里非常無知,所有的例子都表明我正在做的事情(或者我認為)是正確的。
代碼(簡單測試):
using (var transaction = new TransactionScope())
{
using (var queue = new MessageQueue(@"FormatName:DIRECT=OS:mymachine\MyQueueQueue"))
{
XDocument xdoc = XDocument.Parse("<root/>");
var message = new Message(xdoc.ToString());
queue.Send(message, MessageQueueTransactionType.Single);
}
transaction.Complete();
}
Console.Read();
}
我做錯了什么? 奇怪......沒有錯誤,但在任何地方都看不到消息。 寫入工作到我的本地隊列。
您在本地計算機上看到的隊列是MSMQ如何將消息從您的計算機傳輸到遠程計算機。 所以只要沒有消息就不要擔心。 如果其上有消息,則表明遠程隊列由於某種原因不可用。
可能的權限可能是一個問題。 檢查遠程隊列上的發送權限。 如果呼叫是跨域調用,則需要將ANONYMOUS LOGON添加到您的權限中。
還嘗試啟用MSMQ事件日志(如果您運行的是服務器2008或更高版本)。
UPDATE
看起來您正在調用公共隊列地址。 你應該使用私人隊列。 除了PRIVATE $指令外,地址相同:
FORMATNAME:DIRECT = OS:mymachine上\\ PRIVATE $ \\ MyQueueQueue
另外:你的隊列名稱myQueueQueue就像你的隊列地址一樣嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.