Eindeutigkeit von SignalR Server Port / FusionApi Server Port im Update-Prozess sicherstellen

Automatische Portvergabe

Bei Kunden mit mehreren BO-Server-Instanzen auf einer Maschine (z. B. ...\Server,
...\ServerInstanz2, ...\ServerInstanz3) muss jede Instanz eigene, eindeutige Ports haben:

  • SignalRServerPort (Standard 11120) – für die Echtzeit-Verbindung Client ↔ Server.
  • FusionApiServerPort (Standard 8321) – für die Fusion-/REST-Schnittstelle.

Hatten zwei Instanzen denselben Port, scheiterte der Start der zweiten Instanz
(„Port bereits belegt"). Sichtbare Folge beim Kunden: WERBAS-Start dauert ~2 Minuten und
endet mit einer SignalR-Verbindungs-Fehlermeldung.

Bisher wurde beim Setup nur der klassische Server-Port automatisch hochgezählt – die beiden
oben genannten Ports nicht. Das wird mit dieser Änderung behoben.


Was ändert sich beim Update?

Der Installer führt ab sofort bei jeder Neuinstallation und bei jedem Update eine
automatische Prüfung durch: Er geht alle Server-Instanzen in der ConnectConfig.xml
durch und stellt sicher, dass SignalRServerPort und FusionApiServerPort je Instanz
eindeutig sind.

  • Es ist kein manueller Eingriff nötig. Die Ports werden automatisch gesetzt/korrigiert.
  • Es wird nichts kaputt gemacht: Bereits korrekte, eindeutige Werte bleiben unverändert.
  • Jede Aktion wird ins Setup-Log geschrieben (nachvollziehbar für den Service).

Die ConnectConfig.xml liegt unter:
%ProgramData%\WERBAS\Werbas.Web\Config\ConnectConfig.xml


Wie wird die Eindeutigkeit garantiert? (die Regeln)

Pro Port-Art (SignalR bzw. FusionApi) getrennt und in Reihenfolge der Server-Instanzen:

  1. Port fehlt → wird angelegt.
    Erste Instanz bekommt den Standardwert, jede weitere den nächsten freien Wert.
  2. Port ist doppelt → die betroffene Instanz bekommt den nächsten global freien Wert
    (höchster bereits vergebener Wert dieser Port-Art + 1).
  3. Port ist bereits eindeutig → bleibt unverändert (nur Erfolgsmeldung im Log).

Idempotent: Läuft das Update ein zweites Mal, ändert sich nichts mehr – es stehen dann
nur noch Erfolgsmeldungen im Log.


Beispiel

Kunde mit 3 Instanzen, vorher ohne die Port-Einträge:

Instanz SignalRServerPort FusionApiServerPort
Server (1.) 11120 8321
ServerInstanz2 11121 8322
ServerInstanz3 11122 8323

Waren z. B. versehentlich zwei Instanzen auf 11120 gesetzt, wird die zweite automatisch
auf den nächsten freien Wert (11121 usw.) korrigiert.


Was steht im Setup-Log?

Das Setup-Log liegt unter:
C:\ProgramData\WERBAS\Werbas.Web\Log\WerbasWebInstaller.txt

Beispiele für Log-Einträge (Stichwort CheckAndFixServerPorts):

  • Node 'FusionApiServerPort' fuer Server '...\ServerInstanz2' fehlte und wurde mit Wert '8322' angelegt.
  • Node 'SignalRServerPort' fuer Server '...\ServerInstanz3' von '11120' auf eindeutigen Wert '11122' korrigiert.
  • Alle Server-Ports (SignalRServerPort/FusionApiServerPort) sind eindeutig - keine Aenderung noetig.

→ Der Service kann im Setup-Log direkt sehen, ob und was angepasst wurde.


Was ist nicht betroffen?

  • Das bisherige Verhalten der übrigen Ports (u. a. der Remoting-/Server-Port) bleibt
    unverändert.
  • Kunden mit nur einer Server-Instanz merken nichts – ihre Ports bleiben auf den
    Standardwerten.
  • Es findet kein Selbst-Heilen im laufenden Betrieb statt; die Prüfung läuft ausschließlich
    im Rahmen von Installation/Update.

Was sollte im Problemfall geprüft werden?

  • Nach dem Update: Bei Port-Problemen mit mehreren Instanzen zuerst das Setup-Log
    C:\ProgramData\WERBAS\Werbas.Web\Log\WerbasWebInstaller.txt prüfen
    (Einträge mit CheckAndFixServerPorts).
  • Die Ports müssen nicht mehr von Hand in der ConnectConfig.xml gepflegt werden.
  • Bei Bedarf lassen sich die zugewiesenen Werte in der ConnectConfig.xml je Server-Block
    nachvollziehen (SignalRServerPort, FusionApiServerPort).
Artikel ID: 3901250

War dieser Artikel hilfreich?