2016-06-07 22 views
0

Ich versuche, einen NServiceBus Distributor/Worker für Entwicklungszwecke zu konfigurieren. Ich habe die folgenden Abhängigkeiten installiert:NServiceBus Distributor/Worker ConfigurationErrorsException - 'MasterNodeConfig.Node' verweist auf einen lokalen Hostnamen: [localhost]

  • NServiceBus.Core v5.2.14
  • NServiceBus.Distributor.MSMQ v5.0.4
  • NServiceBus.Host v6.0.0

Ein Configuration geworfen wird in einer der Arbeiter mit der folgenden Nachricht:

"MasterNodeConfig.Node" verweist auf einen lokalen Host-Namen: [localhost]

Die Absicht dieses Fehlers ist klar. Eine Konfiguration, die auf localhost verweist, vereitelt den Zweck der verteilten Architektur. Obwohl diese Art der Konfiguration für Entwicklungszwecke optimal ist. Unten ist die Konfiguration meines Arbeiters:

<TransportConfig MaxRetries="5"/> 

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

<MessageForwardingInCaseOfFaultConfig ErrorQueue="error"/> 

In dem unten stehenden Link eine Arbeitsprobe:

Scale Out with the Distributor

meine Lösung zum Beispiel in dem obigen Link es Vergleich Es ist unklar, was die ConfigurationErrorsException in meinem Worker verursachen könnte. Irgendwelche Vorschläge?

Antwort

2

Der Versuch, ein Beispiel für den Verteiler zu erstellen, der auf einem einzelnen Computer ausgeführt werden kann, der per Definition auf mehreren Computern ausgeführt werden soll, ist etwas schwierig. (. Die Probe wird diskutiert in einer realen Umgebung horizontale Skalierung weiter unten Wir haben eine Notiz in der Nähe der Spitze, um es zu verbinden.)

Der Teil in der Probe, die nicht in Ihrem Code ist ein appSetting:

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

Wenn diese Einstellung vorhanden ist, wird die Überprüfung auf Loopback-Adressen in der MasterNode-Konfiguration übersprungen. Dies ist leider nicht dokumentiert und möglicherweise nur vorhanden, damit dieses Beispiel funktioniert. Wir werden als Teil des Problems, das ich angesprochen habe, ermitteln und entscheiden.

Im wirklichen Leben sollten Sie jedoch volle Maschinennamen anstelle von localhost verwenden. Das kann man natürlich nicht in einer Stichprobe machen.

Ein weiterer Punkt ist, dass die MasterNodeConfig und die DistributorControlAddress/DistributorDataAddress Attribute auf UnicastBusConfig nicht wirklich zusammen nicht gehen, oder brauchen nicht zu.

ist eine einfache Möglichkeit, alle Endpunkte mit der gleichen Konfigurationsdatei zu konfigurieren. Wenn der Endpunkt Sales ist und der MasterNode ServerA lautet, lautet die Steueradresse [email protected] und die Datenadresse lautet [email protected]. Aber das setzt immer mehrere Maschinen voraus. Mit den beiden Attributen können Sie also benutzerdefinierte Warteschlangen angeben, die sich möglicherweise auf demselben Computer befinden. Wenn Sie also die beiden Attribute verwenden, sollten Sie überhaupt MasterNodeConfig überhaupt nicht verwenden.

+0

Das war das fehlende Stück. Danke David. – Pietro

+0

@Pietro Abhängig von Ihrer Veröffentlichungszeitleiste kann Beta NSB 6 eine gute Option für Sie sein. Insbesondere wurde der Verteiler für die Skalierung des MSMQ-Transports nicht mehr benötigt. Es gibt viele andere Vorteile, die NSB 6 zu einer guten Wahl machen. Allerdings hat insbesondere nicht gesagt, wenn sie planen, v6 zu veröffentlichen, aber einige bestimmte Devs, die ich weiß, sind optimistisch für eine EOY-Veröffentlichung. David, du willst etwas konkreter fallen lassen;)? –