2016-07-27 18 views
0

NServiceBus 5.2.14,NServiceBus.Host 6.0.0,MSMQ交通運輸,NHibernate的持久性NServiceBus。 MSMQ消息中攜帶響應隊列的私有IP,但我需要公共

我需要通過發佈/訂閱兩個端點之間建立通信。兩者都具有靜態公共IP。首先部署在Azure Classic VM上。第二個目前是我的開發PC。

我正在使用「UnicastBusConfig」部分將命令和事件映射到端點地址,在「端點」屬性中使用公共IP。 Bus.Send()按預期工作。但Bus.Publish()和Bus.Reply()嘗試向私有IP發送消息。

訂閱消息還攜帶訂閱者的私有IP(我已檢查訂閱表)。

看起來好像在這兩個端點之間發送的所有消息(在兩個方向上)都捕獲發送方的專用IP用於「響應隊列」。以下是發佈事件卡住在傳出隊列中的示例。 Stuk event

我可以配置我的端點使用事件訂閱的消息自定義地址(在我的情況下,公網IP)至少(我生活中可以沒有Bus.Reply())。我試過: 1.使用BusConfiguration的OverridePublicReturnAddress()擴展名; 2.附加設置「ReplyToAddress」標題的IMutateTransportMessages實現。 但沒有任何積極的結果。

+0

您是否檢查過MSMQ中的隊列是否公開?我不知道他們是否與私人IP識別,因爲他們被創建爲私人隊列,因此沒有註冊目錄服務? – JustABitOfCode

回答

0

您的Azure虛擬機在同一個虛擬網絡中,如果是這樣,您可以使用私有進行一些通信。

+0

沒有。雲中只有一個,另一個不是。 – subtlety