2016-06-07 43 views
0

我正在嘗試配置一個NServiceBus經銷商/工作人員用於開發目的。我已經安裝了以下依賴關係:NServiceBus經銷商/工人ConfigurationErrorsException - 'MasterNodeConfig.Node'指向本地主機名:[localhost]

  • NServiceBus.Core v5.2.14
  • NServiceBus.Distributor.MSMQ V5.0.4
  • NServiceBus.Host V6.0.0

一個ConfigurationErrorsException被拋出其中一位工作人員發出以下消息:

'MasterNodeConfig.Node'指向本地主機名:[localhost]

此錯誤的意圖很明確。指向localhost的配置違背了分佈式體系結構的目的。儘管爲了開發目的,這種類型的配置是最佳的。下面是我的工人的配置:

<TransportConfig MaxRetries="5"/> 

<MasterNodeConfig Node="localhost"/> 
<UnicastBusConfig 
    DistributorControlAddress="[email protected]" 
    DistributorDataAddress="[email protected]"> 
    <MessageEndpointMappings></MessageEndpointMappings> 
</UnicastBusConfig> 

<MessageForwardingInCaseOfFaultConfig ErrorQueue="error"/> 

在下面的鏈路是工作示例:

Scale Out with the Distributor

比較我的解決方案的示例在它上面的鏈接不清楚什麼可能會導致我的工人ConfigurationErrorsException。有什麼建議麼?

回答

2

試圖爲可在單臺機器上運行的經銷商創建樣本,該機器根據定義應該在多臺機器上運行,但有點困難。 (樣品並討論在實際環境中向外擴展進一步下跌,我們加了註釋靠近頂部鏈接到它。)

,是不是在你的代碼示例中的部分是appSetting:

<appSettings> 
    <add 
    key="NServiceBus/Distributor/WorkerNameToUseWhileTesting" 
    value="Samples.Scaleout.Worker1" /> 
</appSettings> 

如果此設置存在,則會跳過檢查MasterNode配置中的環回地址。不幸的是,這是沒有記錄的,並且可能只是爲了使這個樣本工作而存在。我們將調查並解決問題,作爲我提出的問題的一部分。

但是,在現實生活中,您應該真正使用完整的機器名稱而不是localhost。當然,你不能在樣本中做。

另一個項目是,MasterNodeConfigUnicastBusConfigDistributorControlAddress/DistributorDataAddress屬性不會真的走在一起,或者不需要。

MasterNodeConfig是一個簡單的方法來配置所有端點與相同的配置文件。如果端點是Sales,主節點是ServerA,則控制地址是[email protected],數據地址是[email protected]。但是,這總是假設多臺機器。所以這兩個屬性允許你指定可能在同一臺機器上的自定義隊列。因此,如果您使用這兩個屬性,則根本不應該使用MasterNodeConfig

+0

這是失蹤的一塊。謝謝大衛。 – Pietro

+0

@Pietro取決於你的發佈時間表,beta NSB 6對你來說可能是一個不錯的選擇。特別消除了分銷商擴大MSMQ運輸的需求。有許多其他優點使NSB 6成爲一個不錯的選擇。但是,特別是他們計劃發佈v6的時候並沒有說過,但是我認識的幾位特別的開發人員對EOY發佈感到樂觀。大衛,你想放棄更具體的東西;)? –