Zum Inhalt
Sie verwenden eine veraltete Dokumentation Zur aktuellen Version wechseln

# SASKIA.H2R (NetFramework)

### Voraussetzungen

Ausführliche Informationen zu Systemvoraussetzungen finden sie hier.

### Installation IIS Webserver

Klicken sie in der `Systemsteuerung` auf `Windows-Features aktivieren oder deaktivieren`.

Wählen sie im Anschluss im erscheinenden Dialog `Assistent zum Hinzufügen von Rollen und Features` die "`Rollenbasierte oder featurebasierte Installation` als Installationstyp aus und Klicken sie auf `Weiter`.

Aktivieren sie im Dialogschritt `Serverrollen` die folgenden Webserver (IIS) - Rollen:

Im Dialogschritt `Features` aktivieren sie bitte die folgenden Optionen:

Schließen sie den Dialog durch Betätigen von `Installieren` ab.

Im Windows Server Manager ist anschließend der Eintrag `IIS` verfügbar.

Nach der Installation der notwendigen Features können sie den IIS Manager per Rechtsklick auf dem entsprechend aufgelisteten Webserver aufrufen.

Damit ist die Installation von IIS für den Betrieb von H2R abgeschlossen

### Installation Powershell Remoting Dienst

Zur Durchführung des OnlineUpdates wir der Dienst `Windows-Remoteverwaltung (WS-Verwaltung)` benötigt.

Sie können diesen Dienst über folgenden Befehl in der Powershell direkt installieren.

    Enable-PSRemoting

Weiterführende Informationen erhalten sie hier.

### Installation H2R Anwendung

Öffnen sie den IIS Manager und erstellen sie einen neuen Anwendungspool `H2R` mit den folgenden Einstellungen

- Name: `H2R`
- .Net CLR-Version: verfügbare .Net CLR-Version auswählen
- verwalteter Pipelinemodus: `Integriert`
- Anwendungspool sofort starten: `Aktiviert`

Setzen sie anschließend in den erweiterten Einstellungen des Anwendungspools `H2R` den Eintrag `Benutzerprofil laden` auf `True`. Der korrekte Eintrag ist essenziell für die Realisierung des PDF Druckes mit Hilfe des IIS Servers.

Die H2R Anwendung muss nun als Website angelegt und dem Anwendungspool `H2R` zugeordnet werden. Klicken sie dafür mit der rechten Maustaste auf den Punkt `Sites` und wählen sie anschließend `Website hinzufügen`

Folgende Angaben sind zu hinterlegen:

- Sitename: H2R
- Physischer Pfad: D:\H2R (Bei Bedarf anpassen)
- Bindung Typ: HTTP
- Bindung Port: 80

Kopieren sie nun den Inhalt des durch das Saskia OnlineUpdates bereitgestellten Ordners `H2R` in den Ordner der zuvor erstellten Website.

In unserem Beispiel sollte der Ordner `D:\H2R` wie folgt aussehen:

Hinweis

Die Datei `wisej-server.lic` wird beim ersten Start der Anwendung erstellt und prüft den hinterlegten Wisej.LicenseKey in der `Web.config` auf Gültigkeit. Für diese Anfrage muss der IIS Prozess per Webrequest mit der Adresse http://license.wisej.com/ kommunizieren können. Notwendige Proxyeinstellung für diese Verbindung können sie in der Web.config unter system.net.DefaultProxy hinterlegen.

Für den erstellten Ordner müssen je nach Sicherheitsrichtline volle Lese- und Schreibrechte für den Anwender `IIS_IUSRS` eingerichtet werden.

Im Anschluss sollte die H2R-Anwendung im Browser über die Serveradresse aufrufbar sein:

### Datei- und Ordnerstruktur

Im folgenden Abschnitt werden die Datei- und Ordnerstruktur von H2R auf dem Webserver erläutert.

Ordner/Datei | Beschreibung
--- | ---
bin | Der bin-Ordner enthält den ausführbaren Programmcode von H2R sowie Übersetzungen/Lokalisierungen
Default.html | enthält den Einstiegspunkt der Anwendung, wird beim Aufruf der URL geladen
Defaullt.json | enthält Grundeinstellungen der H2R Webanwendung, z.B. Sessiontimeout oder verwendetes Theme
Web.config | enthält IIS Konfigurationsangaben für die H2R Anwendung
central.config | enthält die zentrale Konfiguration der mit H2R verbundenen Dienste (WCF)
sql.config | enthält die für H2R zur Verfügung stehenden Datenbankverbindungsinformationen

### Konfigurationsdateien

Im folgenden Abschnitt werden die verschiedenen H2R-Konfigurationsdateien aufgelistet und beschrieben.

Web.config Default.json sql.config

Mit Hilfe der Web.config Datei können IIS Anwendungen konfiguriert werden. Eine ausführliche Beschreibung der möglichen Einstellungen entnehmen sie bitte der offiziellen Windows Dokumentation.

    <?xml version="1.0"?>
    <configuration>
        <appSettings>
            <add key="Wisej.LicenseKey" value="ba2afe0be26448cb248b884ddf204fe3" />
            <add key="Wisej.DefaultTheme" value="saskia" />
            <add key="dbname" value="myDatabaseName" />
            <add key="configFile" value="central.config" />
            <add key="replication" value="false" />
        </appSettings>
        <system.net>
            <defaultProxy>
                    <proxy autoDetect="false" bypassonlocal="true" proxyaddress="http://proxy.example.de:80" />
            </defaultProxy>
        </system.net>
        <system.web>
            <globalization requestEncoding="utf-8" responseEncoding="utf-8" />
            <httpRuntime targetFramework="4.8" maxRequestLength="1048576" />
            <httpModules>
                <add name="Wisej" type="Wisej.Core.HttpModule, Wisej.Framework" />
            </httpModules>
        </system.web>
        <system.webServer>
            <validation validateIntegratedModeConfiguration="false" />
            <handlers>
                <add name="wisej" verb="*" path="*.wx" type="Wisej.Core.HttpHandler, Wisej.Framework" />
            </handlers>
            <security>
                <requestFiltering>
                <requestLimits maxAllowedContentLength="1073741824" />
                </requestFiltering>
            </security>
            <defaultDocument enabled="true">
            <files>
                <add value="Default.html" />
            </files>
            </defaultDocument>
        </system.webServer>
    </configuration>

Konfigurationskey | Beschreibung
--- | ---
appSettings.Wisej.LicenseKey | enthält die Lizenz zum Starten der Anwendung auf einem Webserver. Die Lizenz wird von Saskia bereitgestellt
appSettings.Wisej.DefaultTheme | enthält den Namen des Standardthemes
appSettings.dbname | Beim Starten von H2R muss sich das System direkt mit einer vorhandenen Datenbank verbinden. Hier geben sie den Namen dieser Datenbank an
appSettings.configFile | Angabe des Dateipfades zur central.config
appSettings.replication | Parameter muss aus Kompatibilitätsgründen immer auf false gesetzt werden
system.net.defaultProxy | Angabe des Proxies zur Lizenzabfrage Wisej, wenn Server hinter einem Proxy betrieben wird

In dieser Anwendungskonfigurationsdatei kann das Verhalten der Webanwendung H2R beeinflusst werden. Eine ausführliche Beschreibung der Einstellungen finden sie hier

    //
    // Application Configuration:
    //
    // All settings are optional.
    //
    // startup:                    Full name of the startup method. i.e. "MyApp.Program.Main, MyApp".
    // mainWindow:                 Full name of a view (Page or Form) created automatically at startup. i.e. "MyApp.MainView, MyApp".
    // theme:                      Name of the theme, without the extension, to load at startup.
    // url:                        Destination URL. If null, the request must match a web page.
    // allowedRoutes:              Allows the application to handle different Url routes, separated by a semicolon. i.e. "api;admin;query/users".
    // culture:                    The default culture of the application. Default: "auto" (detects the culture from the browser.)
    // rightToLeft:                Enables or disables Right to Left mode: true, false or auto. Default: "auto".
    // sessionTimeout:             Timeout of the session in seconds. Default: 120. Minimum: 60. Disable: 0.
    // responseTimeout:            Timeout of the Wisej requests in seconds. Default: 300. Minimum: 300.
    //                             Increase this value if you expect your application to process long running requests.
    // pollingInterval:            Interval for the automatic polling of the server in milliseconds. Default: 0 (disabled). Minimum: 1000.
    //                             This option is ignored for WebSocket connections.
    // autoReload:                 When true, the application is automatically reloaded when the session expires or Application.Exit() is called. Default: false.
    // secure:                     Forces the client to use SSL. Default: false.
    // showLoader:                 Loads the wisej ajax loader. Default: true.
    // loaderTimeout:              Timeout before the appearance of the Ajax loader in milliseconds. Default: 5000. Minimum: 1000. Disable: 0.
    // browserCheck:               Custom expression to validate the browser, i.e. "navigator.platform == 'Win32'".
    // enablePWA:                  Enables PWA mode in browsers that support it. Default: false.
    // offlineUrl:                 URL to navigate to when the client loses connectivity with the application. Default: "".
    // notSupportedUrl:            URL of the not-supported page. Wisej will redirect here when the browser is not supported. Default: 'resource.wx/Wisej.Framework/NotSupported.html'
    // notAvailableUrl:            URL of the not-available page. Wisej will redirect here when the server cannot accept any more sessions. Default: 'resource.wx/Wisej.Framework/NotAvailable.html'
    // debug:                      Enables logging on the client browser console. Default: false.
    // enableWebSocket:            Enables the user of WebSocket if available. Default: true.
    // enableWebSocketCompression: Enables compression of incoming WebSocket data. Default: true.
    // maxSessions:                Maximum number of active sessions (users) before redirecting to notAvailableUrl. Default: -1 (unlimited).
    // maxModalStack:              Maximum number of nested modal dialogs. Default: 10.
    // dropDuplicateClicks:        Drops all "execute" (clicks) events while there is a pending request. Touch and mouse clicks are still queued and will be executed. Default: false.
    // disableClientObjectModel:   Disables the creation of the JavaScript object model on the client.
    // validateClient              Verifies the client fingerprint when retrieving a session. Default: true.
    // impersonate:                Set impersonate:true to impersonate the user on the server. Default: false.
    // threadPool:                 Configures the thread pool without having to modify the machin.config file.
    //                             All values are optional. i.e. {minWorkerThreads:100}. Default: null.
    // options:                    Map of platform options. i.e. {"automation.mode": true, "mobile.mode": true, ...}.
    // settings:                   Map of custom application settings. i.e. {jquery: "http://cdn...", rootPath: "c:\\users\\...", ...}.
    //                             Custom settings are available using Application.Configuration.Settings.
    {
        "url": "Default.html",
        "theme": "saskia",
        "options": { "mobile.mode": true },
        "startup": "SIS.H2r.Program.Main, SIS.H2r",
        "showLoader": false,
        "autoReload": true,
        "sessionTimeout":  600,
    }

Warnung

Im aktuellen Entwicklungsstand kann die H2R-Anwendung nur mit SQL Server Datenbanken verbunden werden. Die Oracle-Anbindung wird bis zur Veröffentlichung von H2R implementiert.

Für den Connection String sind alle gültigen SQL Server- Varianten möglich. Details entnehmen sie bitte der offiziellen Microsoft-Dokumentation oder der Knowledge Database unter https://www.connectionstrings.com/sql-server/

    <databases>
        <database name="MyDatabase>
            <provider name="Sql" namespace="System.Data.SqlClient" assembly="" brand="31" />
            <autocommit value="false" />
            <named_parameters value="true" prefix="@" />
            <multiple_connections value="false" />
            <null_empty_strings value="true" />
            <connection_string value="Data Source=my.domain.de;Initial Catalog=MyDatabase;MultipleActiveResultSets=True;pooling=false;" />
            <mars_supported value="true" />
            <custom_properties>
                <add name="dbu" value="SgRP9RTtNZpQvnKEH13kLiz0jmB7yX7XnrMEF7qz3p8=" />
            </custom_properties>
        </database>
    </databases>

### HTTPS Kommunikation aktivieren

Um für die H2R-Anwendung eine verschlüselte Kommunikation zwischen Webbrowser und IIS Server zu erreichen, gehen sie bitte wie folgt vor:

Markieren sie im IIS-Manager ihre Website/Applikation und öffnen sie per Rechtsklick den Kontextmenüeintrag `Bindungen bearbeiten`

Es werden nun die vorhandenen Bindungen angezeigt. Über die Schaltfläche `Hinzufügen` können neue Bindungen hinzugefügt werden.

Folgende Angaben sind zu hinterlegen:

- Bindung Typ: HTTPS
- Bindung Port: 443
- SSL-Zertifikat: verfügbares CA-Zertifikat oder Domainenzertifikat wählen

### Domainenzertifikat erstellen

In diesem Abschnitt beschreiben wir die Aktivierung von HTTPS für die H2R Anwendung über ein Domainenzertifikat.

Hinweis

Die Erstellung und Einrichtung CA-signierter Zertifikate ist nicht Bestandteil dieser Dokumentation.

Der H2R Server ist im Regelfall nur im internen Netz erreichbar. Kann daher kein CA-signiertes Zertifikat erstellt werden, empfehlen wir die Verwendung eines sogenannten Domänenzertifikats. Vorteilhaft sind dabei die Kostenerstarnis bei der Ausstellung von Zertifikaten und die einfache Bereitstellung.

Um ein Domainenzertifikat zu erstellen gehen sie bitte wie folgt vor:

Öffnen sie im IIS Manager den Dialog `Serverzertifikate`

Klicken Sie anschließend im Fenster `Aktionen` auf `Domänenzertifikat erstellen`.

Im Dialog tragen sie nun die Zertifikatsinformationen für ihren spezifischen Standort ein. Im Feld Gemeinsamer Name müssen Sie den vollständig qualifizierten Domänennamen des H2R Servers eingeben, beispielsweise ``server.meine-domain.de`.

Nach Eingabe der Daten geben sie im Folgedialog bitte ihre Online-Zertifizierungsstelle an.

Schließen sie die Domainzertifikatserstellung durch Betätigen der Schaltfläche `Fertig stellen` ab.

### Strict Transport Security (HSTS)-Unterstützung aktivieren

Hinweis

IIS unterstützt mehrere Möglichkeiten, um eine sichere Übertragung mittels HTTPS zu erzwingen. Eine komplette Beschreibung finden sie hier.

IIS 10.0 bietet ab Version 1709 Native HSTS-Unterstützung. Aktivieren sie diese Einstellung im ISS Manager, in dem sie ihre Website auswählen und im Aktionsmenu `HSTS` auswählen:

Folgende Angaben sind zu hinterlegen:

- Aktivieren: Ja
- Max Age: 31536000
- IncludeSubSomains: Ja (wenn Anwendung nicht über Subdomain auf dem Server genutzt wird)
- HTTP an HTTPS umleiten

Der Webserver liefert dann die korrekten Antwort-Header zurück, die sie über die Browser Console einsehen können. Damit ist HSTS korrekt für ihre H2R-Anwendung eingerichtet.

Subdomain-Handling

Prüfen sie ihre individuellen URL-Rewrite Regeln im Zusammenspiel mit HSTS, um ein korrektes Redirect-Verhalten zu erreichen. Die Einstellungsmöglichkeiten sind hier detailliert dokumentiert.

### Wndows Authentifizierung (SSO Single Sign On) aktivieren

Klicken sie in der `Systemsteuerung` auf `Windows-Features aktivieren oder deaktivieren`.

Wählen sie im Anschluss im erscheinenden Dialog `Assistent zum Hinzufügen von Rollen und Features` die "`Rollenbasierte oder featurebasierte Installation` als Installationstyp aus und Klicken sie auf `Weiter`.

Aktivieren sie im Dialogschritt `Serverrollen` die Webserver (IIS) - Rolle `Windows-Authentifizierung`.

Hinweis

Starten sie anschließend den IIS Dienst in der Dienstverwaltung neu

Im IIS Manager steht nun unter dem Punkt `Authentifizierung` die Option `Windows-Authentifizierung` zur Verfügung, welche sie aktivieren.

Deaktivieren sie zusätzlich die anonyme Authentifizierung, wenn H2R nur für Domain-Anwender erreichbar sein soll.

Als letzten Schritt ergänzen sie folgenden Eintrag in der `Web.config` ihrer H2R-Installation

        <configuration>
            <system.web>
                <authentication mode="Windows" />
            </system.web>
        </configuration>

### Installation von Schriftarten

Die verfügbaren Mrt-Reports werden auf dem Server im Kontext des konfigurierten ApplicationPool-Anwenders erzeugt. Daher müssen alle benötigten Schriften für diesen Anwender verfügbar gemacht werden. Wir empfehlen die Installation der Schriftart für alle Windows-Anwender. Kopieren sie dafür die Schriftart-Datei auf den Server und wählen nach vorherigem Rechtsklick im Kontextmenü die Option `Für alle Benutzer installieren`.

Nach der Installation muss der Server zwingend neugestartet werden, damit die neue Schriftart verfügbar wird.

wichtiger Hinweis

Es muss ein Standarddrucker in dem Nutzerprofil des verwendeten App-Pool-Nutzers hinterlegt werden. Beachten sie dabei ihre Domainen-konfiguration und Gruppenrichtlinien!!!!

28. August 2025
12. Juni 2025