Einführung


Registrierung von iPlus als Windows-Dienst

Den Dienst registriert man mit der Anwendung InstallUtil.exe per Kommandozeile.
Die InstallUtil.exe befindet sich im Verzeichnis der .NET-Frameworkinstallation z.B.
C:\Windows\Microsoft.NET\Framework\v4.0.30319

So erfolgt der Aufruf

Auf 32 bit Ebene:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil C:\MyFolder2iPlus\gip.iplus.service.exe

Auf 64 bit Ebene:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\installutil C:\MyFolder2iPlus\gip.iplus.service.exe

 

Um den Dienst wieder zu deinstallieren muss /U als Option angegegen werden

Auf 32 bit Ebene:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil /U C:\MyFolder2iPlus\gip.iplus.service.exe

Auf 64 bit Ebene:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\installutil /U C:\MyFolder2iPlus\gip.iplus.service.exe

ACHTUNG: Die Eingabeaufforderung muss mit Administrationsrechten ausgeführt
werden!!!

 


Dienst-Konfiguration: Anpassen der Benutzeranmeldung

Damit der Dienst mit dem richtigen iPlus-Benutzer hochfährt muss mit regedit (Registry
Editor) die Start-Parameter mit angegeben werden.

Unter dem Schlüssel
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iPlus]

den Parameter ImagePath mit /U und /P erweitern.


Beispiel:

Will man den User 00 mit Passwort 00 verwenden, dann heißt der String im ImagePath:

"C:\MyFolder2iPlus\gip.iplus.service.exe" /U00 /P00


Konfiguration der Firewall

iPlus ist ein Client-Server-System, bei dem die Clients per TCP-/IP mit dem/den Server/n kommunizieren. Eine mit iPlus konfigurierte Anwendung (serverseitig) läuft zudem immer unter einem bestimmten iPlus-Benutzer. Deswegen erfolgt die Netzwerkkonfiguration immer benutzerbezogen. Im Menüpunkt "?->Netzwerkkonfiguration" können die Eintellungen eingestellt werden:

 

Die Kommunikation ist mittels WCF implementiert:

https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/wcf/index

Wir empfehlen die standardmäßige binäre TCP-/IP-Konfiguration (TcpTransportBinding + BinaryMessageEncoding) wie im Bild oben zu sehen. 

Falls Sie stattdessen http verwenden möchten aufgrund von Firewallrichtlinien oder iPlus im Internet betreiben wollen, aktivieren Sie die "Aktiviere http"-Checkbox.

In beiden Fällen können Sie die Portnummer konfigurieren. 

Bitte beachten Sie, dass der Hostname und die IP-Adressen von alleine überschrieben werden, sobald der iPlus-Dienst mit dem entsprechenden Service-Benutzer gestartet wird. Daher müssen Sie in diesen Felder nichts eintragen, ausser Sie haben eine Datenbankkopie erstellt und möchten auf einem anderen Rechner einen weiteren iPlus-Dienst starten und der iplus-Dienst ist noch erreichbar. Den beim Starten des Dienstes wird zuerst geprüft ob unter den angegebenen Netzwerkadressen ein Verbindungsaufbau gemacht werden kann. Wenn ja, dann wird iplus als Client gestartet und nicht als Server. Das ist eine Sicherheitsmaßnahme damit es nicht zu sehr unerwünschten Seiteneffekten im Produktivbetrieb kommen kann.

Grunsätzlich empfehlen wir die Einstellung "Per Namensauflösung". Dann ist der Dienst über alle Netzwerkadapter erreichbar.

Möchten Sie explizit per IP-Adresse verbinden lassen, dann enfernen Sie das Namensauflösungs-Häkchen (das ist nützlich wenn die Namensauflösung nicht funktioniert oder man speziell nur einen bestimmtes Subnetz erlauben will eine Verbindung auszubauen). Wenn Sie IPV6 bevorzugen, dann setzen Sie das Häkchen. Jedes Mal wenn der iplus-Dienst erfolreich gestartet worden ist, dann werden diese drei Felder (IP-Adresse, IPV6-Adresse und Hostname) automatisch aktualisierst. Dies kann aber manchmal zu Problemen führen, wenn Sie mehrere Netzwerkadressen haben. Dann müssen Sie händisch die IP-Adressen eintragen und das Häkchen "Autodicovery" entfernen, damit beim nächsten Neustart die IP-Adressen wieder überschrieben werden.

(Hintergrund ist, dass der iPlus-Dienst vor dem Hochfahren prüft ob bereits ein anderer iPlus-Dienst unter der aktuell eingestellten Netzwerkkonfiguration erreichbar ist. Falls ja, dann läuft der Dienst als Client hoch und instanziiert keine Serverobjekte.)