微軟訊息佇列路徑的使用問題

2021-07-02 12:11:27 字數 1209 閱讀 5891

今天在測試微軟訊息佇列,打算把訊息發到伺服器的,用ip位址來指定。

開發時用本地環迴ip127.0.0.1來測試,方便提交後其他同事使用,結果發現坑爹的事情了

system.messaging.messagequeue queue = new system.messaging.messagequeue("formatname:direct=tcp:127.0.0.1\\private$\\test");

傳送的訊息,堆在「傳出佇列」裡面,狀態是等待連線

讀取時也發生異常system.messaging.messagequeueexception

hresult=-2147467259

message=佇列不存在,或您沒有足夠的許可權執行該操作。

反覆測試後發現,用127.0.0.1是不行的,換成乙個本機ip就可以了

system.messaging.messagequeue queue = new system.messaging.messagequeue("formatname:direct=tcp:192.168.2.88\\private$\\test");

現象傳送接收**如下:

傳送system.messaging.messagequeue queue = new system.messaging.messagequeue(arpauploadmessagequeuename);

var msg = new system.messaging.message();

msg.body = new mydata();

msg.formatter = new system.messaging.xmlmessageformatter(new type );

msg.recoverable = true;

接收system.messaging.messagequeue queue = new system.messaging.messagequeue("formatname:direct=tcp:192.1.0.127\\private$\\arpatest");

var msg = queue.receive();

msg.formatter = new xmlmessageformatter();

console.writeline("讀取佇列物件."+msg.body);

訊息佇列的使用

剛開始看的時候,由兩個疑問,我自己的答案是這樣的 1.訊息佇列在系統中的最大個數,關於這個問題,書上有明確的答案 書上有個 列明了linux free bsd,mac os x solaris中的典型值。當然也可以通過一些手段來修改。sysctl就可以修改。2.在多個執行緒 或程序 同時對乙個訊息佇...

使用微軟訊息佇列實現C 程序間通訊(二)

列表e messageenumerator enumerator queue.getmessageenumerator2 while enumerator.movenext enumerator.removecurrent 在使用getmessageenumerator2方法時,還要考慮另外乙個問題...

如何使用訊息佇列的事務訊息

發訊息 過程,往往是為通知另外乙個系統更新資料,mq的 事務 主要解決訊息生產者和訊息消費者的資料一致性問題。先把商品加到購物車 然後幾件商品一起下單 最後支付 完成購物流程,就可以愉快地等待收貨 該過程中有個需用mq。訂單系統建立訂單後,發訊息給購物車模組,將已下單商品從購物車刪除。從購物車刪除已...