msmq在Internet上訪問的問題(只能傳送,不能接收)

hahadelphi發表於2021-09-09

今天測試了一下,message queue的private佇列,在internet上可以傳送,只要知道服務端的IP地址即可(當然服務端的佇列許可權要給足)

 

注意:佇列path的引用必須參照下面的格式

 

FormatName:DIRECT=tcp:222.23.225.3Private$Demo

 

結論:

在客戶端與服務端不在同一臺機器上時,只能傳送,不能接收(即不能遠端接收internet的private佇列)

 

遠端不能接收的解決辦法:

1。如果服務端有控制許可權,可以在服務端佈署一個程式,功能為:實時監聽本機的訊息佇列,只要有訊息,就將訊息接收並插入資料庫的一個臨時表,然後在遠端客戶端透過資料庫來訪問臨時表,這樣變相的就得到了訊息內容

2。如果服務端無控制許可權,但有上傳aspx許可權,建一個aspx頁面,功能為把服務端佇列中的所有內容,接收轉移到資料庫的臨時表,在遠端客戶端要得到訊息佇列前,用程式碼訪問一下這個頁面(比如發一個http訪問請求),剩下的操作類似方案1(不足:如果沒有及時訪問這個頁面,也就是說沒有及時取走佇列中的內容,佇列有可能“暴滿”)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2471/viewspace-2801027/,如需轉載,請註明出處,否則將追究法律責任。

相關文章