2009-06-10 44 views
2

我有下面的代碼報廢測試MSMQ確認:「\私人$ \ QUEUENAME」MSMQ:傳送到遠程隊列時致謝不會返回

static void Main(string[] args) 
    { 
     string queuePath = args[0]; 
     string ackQueuePath = args[1]; 
     MessageQueue queue = new MessageQueue(queuePath); 
     MessageQueue ackQueue = new MessageQueue(ackQueuePath); 
     Message message = new Message("Body text"); 
     message.Label = "test"; 
     message.Recoverable = true; 
     message.TimeToReachQueue = new TimeSpan(0, 1, 0); 
     message.TimeToBeReceived = new TimeSpan(1, 0, 0); 
     message.AdministrationQueue = ackQueue; 
     message.AcknowledgeType = AcknowledgeTypes.FullReachQueue; 
     queue.Send(message, MessageQueueTransactionType.Single); 
    } 

如果queuePath和ackQueuePath都是局部的,即格式,我會按照預期在主隊列中獲得「測試」消息,並在管理隊列中獲得到達隊列確認。但是,如果queuePath指向遠程隊列,即「FormatName:DIRECT = OS:MACHINENAME \ private $ \ queuename」格式,則在該遠程隊列中收到「test」消息,但在本地管理隊列中沒有到達隊列確認。

我還沒有看到任何指示確認無法從遠程隊列返回的消息,所以我認爲我的代碼或環境存在問題。有任何想法嗎?

(這兩款機器都是Windows 2003)

回答

2

以供參考,這工作正常我重新安裝消息隊列在兩臺機器上後。

+3

那真的很爛......說了很多關於MSMQ。幾個星期前我開始使用它,並且我仍然有成千上萬的問題,爲什麼有時這個或那個不起作用... – 2010-08-17 09:21:40

4

@LievenCardoen & @marijne。

不確定這是否是您的原始問題,但確認隊列不應該是事務性的。 如果是這樣,您將不會收到任何確認消息,並且沒有任何類型的錯誤消息會向您顯示。我已經學到了艱辛的道路:)

乾杯 約翰

相關問題