Troubleshooting / Problembehandlung
- 1 Installation: Set-WebConfigurationProperty: The data is invalid.
- 2 HTTP Error 500.19 - Internal Server Error
- 3 HTTP Error 500 - Runtime Error
- 4 HTTP Error 500 ohne Details
- 5 "SecurityException request for the permission of type..."
- 6 Admin/Dashboard kann nicht aufgerufen werden, "Unauthorized"-Fehler wird angezeigt
- 7 Einsatz eines Proxys
- 8 IdentityServer läuft nicht ordnungsgemäss
- 9 Application Pool beendet sich immer wieder beim Einsatz des Microsoft Monitoring Agent
- 10 Webapplikation läuft nicht ordnungsgemäss
- 11 Authentifizierung im Admin/Dashboard funktioniert nicht
- 12 SQL Server Verbindung nicht möglich
Diese Seite listet häufig auftretende Probleme mit den Serverkomponenten auf.
Diese Seite betrifft die OnPremises-Variante.
Bei der "Software as a Service"-Variante sind keine Serverinstallationen durch den Kunden notwendig.
Installation: Set-WebConfigurationProperty: The data is invalid.
Tritt bei der Installation von primedocs über das PowerShell Script solch ein Fehler auf, sollte das .NET 8 Windows Hosting Bundle repariert werden.
Fehlermeldung:
Set-WebConfigurationProperty : The data is invalid. (Exception from HRESULT: 0x8007000D)
Der Fehler hängt vermutlich mit der Installationsabfolge zusammen. Idealerweise erfüllt der Server die Systemvoraussetzungen vor der Installation.
HTTP Error 500.19 - Internal Server Error
Bei dieser Meldung kann die Seite gemäss den Microsoft Docs (Link) nicht angezeigt werden aufgrund von ungültigen Konfigurationsdaten.
Versuchen Sie folgendes:
Stellen Sie sicher, dass die Application Pools Ändern-Rechte haben im primedocs-Applikationsverzeichnis.
Führen Sie einen Neustart der Server-Maschine durch.
Stellen Sie sicher, dass das .NET Core Hosting Bundle korrekt installiert ist und installieren Sie es ggf. neu (siehe Systemvoraussetzungen).
HTTP Error 500 - Runtime Error
Dieser generelle Fehler kann verschiedene Ursachen haben. Um die eigentliche Fehlermeldung zu sehen, muss in der web.config
-Datei folgender Eintrag hinzugefügt werden:
<configuration>
...
<system.web>
<customErrors mode="Off" />
...
</system.web>
...
<configuration>
Danach sollte im Browser die Fehlermeldung zu sehen sein. Falls die Fehlermeldung nicht zu sehen ist und der Server u. a. spezielle Sicherheitseinstellungen hat, muss die machine.config
evtl. kurzzeitig geändert werden:
Pfad zur machine.config
:
%windir%\Microsoft.NET\Framework64\v4.0.30319\config\machine.config
Stellen Sie sicher, dass das folgende Element entweder entfernt oder auf false
gesetzt ist:
Bei true
wird die Ausgabe der genauen Fehlermeldung unterdrückt.
HTTP Error 500 ohne Details
Wenn bei einer Applikation ein HTTP 500 Error ohne HTML-Webseite und ohne zusätzliche Informationen erscheint, dann ist für die .NET Core-Applikationen (das sind HealthMonitor, AddressService, WebApi, WebClient und beide IdentityServers) empfehlenswert, den stdout-Log zu aktivieren. Dafür muss in der web.config
-Datei bei aspNetCore
das stdoutLogEnabled
-Attribut auf true
gesetzt werden wie folgt:
Im Anschluss sollten nach Ausführen der Webapplikation im Unterordner "logs" Logfiles erscheinen.
"SecurityException request for the permission of type..."
Dieser Fehler tritt auf, wenn das ".NET Trust Level" (dt. .NET Vertrauensebene) für die IIS Website nicht auf "Full (Internal)" gesetzt ist.
Microsoft selbst verfolgt nicht mehr das "Partial Trust"-Sicherheitsmodell und empfiehlt eigene Application Pools um den sicheren Betrieb verschiedener Webapplikationen auf einer Maschine sicherzustellen. Weitere Informationen finden Sie unter diesem KB 2698981-Eintrag.
Admin/Dashboard kann nicht aufgerufen werden, "Unauthorized"-Fehler wird angezeigt
Die folgende Meldung wird angezeigt, wenn die Authentifizierung über den IdentityServer nicht möglich ist:
"HTTP Error 401.0 - Unauthorized"
Zuerst herausfinden: Läuft der IdentityServer ordnungsgemäss? → siehe IdentityServer läuft nicht
Wenn der IdentityServer ordnungsgemäss funktioniert, muss die Konfiguration in der "primedocs.config"-Datei überprüft werden:
Der IdentityServer muss unter apps
korrekt und mit der korrekten URL konfiguriert sein.
Beispiel:<add id="9ef34d3a-13b5-4f06-b437-b300474beb6d" name="IdentityServer" url="http://your-url.local/ids/" logFilePath="IdS\" type="IdentityServer" />
Einsatz eines Proxys
Wird auf dem Server ein Proxy eingesetzt, kann dies je nach Konfiguration zur Beeinträchtigung des primedocs-Systems führen. So nutzt z. B. der Zefix-Adressprovider die HTTP-Schnittstelle und benötigt daher die Proxyinformationen. Ebenfalls kann es zu Anmeldefehlern kommen, da die unterschiedlichen Applikationen z. B. Kontakt zum IdentityServer aufnehmen und die Adressinformationen aus der "primedocs.config"-Datei übernehmen.
Falls solche Probleme auftreten, kann ein Proxy über die Umgebungsvariablen ALL_PROXY
bzw. NO_PROXY
(damit wird der Weg über den Proxy für bestimmte Adressen unterbunden) gesetzt werden. Weitere Informationen finden Sie in der Microsoft-Dokumentation.
IdentityServer läuft nicht ordnungsgemäss
Dies betrifft die Standardinstallation. In der "WithoutIdS"-Variante ist kein IdentityServer installiert.
Um zu testen, ob der IdentityServer ordnungsgemäss funktioniert, kann https://your-url.local/IdS/Account/Login
aufgerufen werden (optimalerweise nicht vom Server, der den IdentityServer hosted).
Wenn die IdentityServer-Webseite korrekt angezeigt wird, kann für Testzwecke ein Login vorgenommen werden.
Für Fehlerbehandlungen beim IdentityServer siehe auch nachfolgenden Abschnitt Webapplikation läuft nicht ordnungsgemäss.
Application Pool beendet sich immer wieder beim Einsatz des Microsoft Monitoring Agent
Falls die primedocs-Application Pools sich nach einem Request immer automatisch herunterfahren und im "System Event log" (siehe "Ereignisanzeige" / "Event Viewer" (starten über Windows + R, "eventvwr")) sowas vorkommt:
Dann deutet dies darauf hin, dass der "Microsoft Monitoring Agent" mit dem APM Feature auf der Maschine installiert ist und einen Fehler im IIS verursacht. Im "Application Event log" findet man auch einen Verweis auf die "PerfMon.dll". Um das Problem zu Umgehen sollte der "Microsoft Monitoring Agent" entweder entfernt oder das "APM"-Feature deaktiviert werden. Hierfür kann folgender Befehl genutzt werden:
Damit wird der Installer gestartet und eine Reparatur kann durchgeführt werden. Nach einem IIS-Neustart sollte das Problem behoben sein. Weitere Informationen zu dem Fehler finden sich z.B. hier.
Webapplikation läuft nicht ordnungsgemäss
Nachfolgend sind zwei Fehlermeldungen aufgeführt, die bei fehlerhaftem Betrieb bei mehreren primedocs-Webapplikationen auftreten können.
HTTP Error 500.30 - ANCM In-Process Start Failure
Wenn beim Aufstarten einer Applikation ein Fehler aufgetreten ist, erscheint die folgende Meldung:
"HTTP Error 500.30 - ANCM In-Process Start Failure"
Um mehr über den Fehler zu erfahren, kann in der "Ereignisanzeige" / "Event Viewer" (starten über Windows + R, "eventvwr") nachgeschaut werden.
Im folgenden Beispiel ist ersichtlich, dass der Verbindungsaufbau zum SQL Server fehlgeschlagen ist:
HTTP Error 500.35 - ANCM Multiple In-Process Applications in same process
Der nachfolgende Fehler tritt in der Regel auf, wenn auf einem Server primedocs-Webapplikationen mehrmals installiert werden.
"HTTP Error 500.35 - ANCM Multiple In-Process Applications in same Process"
Falls primedocs-Webapplikationen mehrmals installiert wurden, besteht das Problem darin (am Beispiel vom HealthMonitor erklärt), dass nun HealthMonitor-Applikation A und HealthMonitor-Applikation B denselben Applikationspool "primedocs-Unmanaged-HealthMonitor" nutzen. Dabei wird jeweils nur eine der beiden Applikationen funktionieren (jene, die den Applikationspool zuerst beansprucht), bei der anderen wird der obige Fehler angezeigt. Um das Problem zu beheben muss ein weiterer identisch konfigurierter Applikationspool (z. B. "primedocs-Unmanaged-HealthMonitor-Application-B") erstellt und gestartet werden.
WICHTIG
Beim Ausführen des Server-Installationsskript wird standardmässig der Applikationspool "primedocs-Unmanaged-HealthMonitor" in Betracht gezogen und ggf. angepasst. Bei Installationen auf Servern mit mehrfach installierten primedocs-Webapplikationen ist daher besondere Vorsicht geboten und manuelle Konfiguration nötig. Die Namen der Applikationspools können für die Installation in der Datei "Install_Customization.ps1" angepasst werden.
Authentifizierung im Admin/Dashboard funktioniert nicht
Das Dashboard wurde eingerichtet und für AD-Rollen und Benutzer so oder ähnlich zugelassen:
Obwohl der Benutzer aufgelistet oder Mitglied der Gruppe ist, erscheint immer das Login-Fenster und danach ein HTTP-401-Fehler. Der Fehler tritt auch auf, wenn von ausserhalb auf die Maschine zugegriffen wird (nicht via localhost).
Mögliche Lösungen:
Prüfen Sie, ob im IIS die "Windows-Authentifizierung" aktiviert ist.
Falls Sie mit DNS-Einträgen arbeiten, prüfen Sie mit nslookup, ob die Domäne und IP in beide Richtungen übereinstimmen.
Falls Sie mit SSL-Zertifikaten arbeiten, überprüfen Sie, ob die Bindings in IIS korrekt eingestellt sind.
Mögliche Lösungen bei Testsystemen:
Der IIS beinhaltet ein Feature zur Verhinderung von Reflection Attacks. Dieses verhindert, dass vom Host selbst auf eine Seite zugegriffen werden kann. Es wird empfohlen, den Zugriff von einer anderen Maschine aus zu testen. Für Testzwecke kann das besagte Feature folgendermassen deaktiviert werden (dabei ist ein Reboot erforderlich):
2. Wenn alles oben genannte stimmt, kann es trotzdem sein, dass durch Einträge in der Hosts-Datei das Name Checking nicht korrekt funktioniert. Das kann für Testzwecke folgendermassen deaktiviert werden (dabei ist ein Reboot erforderlich):
SQL Server Verbindung nicht möglich
Stellen Sie sicher, dass Sie z.B. über das SQL Management Studio oder einem anderen SQL Client auf den SQL Server mit den konfigurierten Anmeldedaten kommen.
Im Idealfall führen Sie dies auf dem Applikationsserver aus um evtl. Netzwerkprobleme ebenfalls auszuschliessen.
Der Standard-ConnectionString für SQL-Authentifizierung sollte in der Regel so aussehen:
Für Windows-Authentifizierung (siehe SQL-Server-Installation ) sieht der ConnectionString so aus:
Der Parameter Encrypt=False
ist nur dann erforderlich, wenn keine Verschlüsselung auf dem SQL Server konfiguriert ist (siehe "Configure SQL Server Database Engine for encrypting connections").
Je nach SQL-Server-Konfiguration kann die Zertifikatsvalidierung fehlschlagen.
In diesem Fall kann über TrustServerCertificate=True
getestet werden, ob es am Zertifikat liegt oder ob es ein anderes Verbindungsprobleme gibt.
TrustServerCertificate=True
hebelt die Zertifikatsprüfung aus und sollte nicht für den Produktivbetrieb gesetzt sein bzw. sollte nur genutzt werden, wenn man sicher ist, dass das ausgestellte Zertifikat vertrauenswürdig ist.
Sollte der Data Source
-Name nicht dem Host im Zertifikat entsprechen, kann die Eigenschaft HostNameInCertificate
gesetzt werden.
PrimeSoft AG, Bahnhofstrasse 4, 8360 Eschlikon, Switzerland