Direct Connection Host Einrichtung
Ordnerstruktur
PluginFolder enthält alle verwendeten Plugins AzureRelaySetup enthält den Connectionstring zur Verbindung auf die Relay-Hybridverbindung In der Verzeichnisstruktur DirectoryToObserve werden Aufrufe über lokale .json-Files gestartet. Je nach Filesystem und Infrastruktur kann es passieren, dass es eine Zeit dauert, bis das .json vollständig geschrieben ist. In dem Fall kann WaitMaxMilliSecondsAfterJsonFound gesetzt werden, damit wird mehrmals versucht das File zu öffnen, bis es endgültig verarbeitet wird.
Ereignislog
Der erste Aufruf muss mit Administrator-Rechten erfolgen, da ein eigenes Anwendungsprotokoll Cosmo ATVIE Direct Connection erstellt wird. Hier werden, abhängig von der Einstellung LogLevel in der Konfigurationsdatei, Meldungen ausgegeben.
Konfigurationsdatei
Der Connection Host wird über das app.json gesteuert:
{
"UseAzureRelay": false,
"ConnectionString": "Endpoint=sb://xxx.servicebus.windows.net/;SharedAccessKeyName=xxx;SharedAccessKey=xxx;EntityPath=xxx",
"LogLevel": 1,
"PluginFolder": "C:\\Program Files\\COSMO CONSULT\\Direct Connection Host\\Plugins",
"WorkingFolder": "C:\\Program Files\\COSMO CONSULT\\Direct Connection Host\\Work",
"TimerService": {
"UseTimerService": false,
"TimerIntervalSeconds": 3600,
"FileCleanUpIntervalHours": 0
},
"Observer": {
"UseObserver": false,
"CreateObserverPluginFolders": false,
"ObserverDirectory": "C:\\Program Files\\COSMO CONSULT\\Direct Connection Host\\Observed",
"ObserverWaitMaxMilliSecondsAfterJsonFound": 377
},
"LocalFileSystem": {
"FileArchiveFolder": "C:\\Program Files\\COSMO CONSULT\\Direct Connection Host\\File\\Archive",
"FileArchiveFolderStorageDays": 8,
"FileErrorFolder": "C:\\Program Files\\COSMO CONSULT\\Direct Connection Host\\File\\Error",
"FileErrorFolderStorageDays": 15
},
"RestApi": {
"UseRestApi": true,
"HttpUrl": "http://localhost:xxxx",
"HttpsUrl": "https://x.x.x.x:xxxx",
"CertificateThumbprint": "D1FA20E8BB47C1D29149DC767359D065F09BC2FE"
}
}
TimerService
TimerIntervalSeconds
Die Auflösung des Timers, legt den Abstand zwischen zwei TimerEvents fest. Der erst Aufruf erfolgt nicht beim Programmstart, sondern nach Ablauf von <TimerIntervalSeconds> Sekunden, um die Systemlast beim Programmstart zu reduzieren.
FileCleanUpIntervalHours
Legt das Intervall für File-Aufräumaktionen fest. Ein Wert von 24h würde bedeuten, dass einmal pro Tag ältere Files verschoben bzw. gelöscht werden. Entwickler von Custom-Plugins sollten für solche Zwecke ebenfalls diesen Wert verwenden.
LocalFileSystem
FileArchiveFolderStorageDays, FileErrorFolderStorageDays
Voraussetzung für das Aufräumen der Files ist, dass der TimerService läuft, und der Wert für FileCleanUpIntervalHours > 0 ist.
RestApi
Die Verwendung von localhost oder 127.0.0.1 ist auf eingehende Verbindungen vom gleichen Rechner beschränkt
Für https:// gelten folgende Voraussetzungen:
Ein gültiges, vertrauenswürdiges Zertifikat muss vorhanden sein z.B. Wildcard oder Named Server Zertifikat gesucht wird ausschließlich in Lokaler Computer/Eigene Zertifikate
Der Dienstbenutzer des Direct Connection Host muss berechtigt sein den Private Key des Zertifikats zu verwalten
Firewall muss für die Ports geöffnet sein (inbound)
Einrichtung als Dienst
Hierfür wird beim ersten Start das Powershell-Scripts "CreateService.ps1" erstellt, mit den Korrekten Pfaden, je nach Installationsverzeichnis. Dieses Script muss als Administrator gestartet werden.
New-Service -Name "Cosmo.ATVIE.DirectConnection.BCAgentDispatcher" -DisplayName "COSMO Direct Connection BCAgentDispatcher" -Description "COSMO DirectConnection Host" -BinaryPathName "C:\Program Files\COSMO CONSULT\Direct Connection Host\bin\Cosmo.ATVIE.DirectConnection.BCAgentDispatcher.exe" -StartupType Automatic
Der Dienstuser benötigt Zugriffsrechte auf das lokale Filesystem.
bin/web.config
Falls Sie mit größeren Dateien über Rest API arbeiten, empfehlen wir die maxAllowedContentLength und maxRequestLength zu erhöhen.