Datensammlungsstrategien zur Behandlung allgemeiner IIS-Webserverprobleme in Windows Server
Der IIS-Webserver ermöglicht Administratoren, Websitebesitzern und Webanwendungsbesitzern eine Vielzahl von Möglichkeiten zum Generieren von Telemetrie und Metriken zur Leistung gehosteter Webanwendungen: von den IIS-Anforderungsprotokollen über die Ablaufverfolgung von Anforderungsprotokollen, Ereignisanzeigeeinträgen und vielen mehr. Diese Telemetrieelemente können an verschiedenen Stellen auf dem Windows Server, auf dem IIS ausgeführt wird, verteilt werden und alle bei der Problembehandlung gesammelt werden, was sich als zeitaufwändig erweisen kann, insbesondere, wenn die Anzahl der gehosteten Anwendungen groß ist. Das IIS-Supportteam hat ein Tool für diese spezielle Aufgabe entwickelt: LogCather ist ein Tool, das die Sammlung von IIS-Telemetrie- und Konfigurationsdaten an einem zentralen Ort ermöglicht, sodass Administratoren auf den gesamten Server oder nur eine Teilmenge der gehosteten Anwendungen abzielen und einen Zeitraum definieren können, für den die Daten gesammelt werden.
Problembeschreibung
Verbindungsprobleme treten auf, wenn Sie ASP.NET, ASP.NET Core oder andere Arten von Websites und Webanwendungen auf einem IIS-Webserver ausführen, der auf Windows Server ausgeführt wird.
Hinweis
Die derzeit unterstützten Versionen von Windows Server sind Windows Server 2019, Windows Server 2016, Windows Server 2012 R2 und Windows Server 2012.
In diesem Artikel werden Strategien für die Datensammlung beschrieben, um allgemeine PROBLEME im Zusammenhang mit IIS-Webservern zu beheben.
SSL- und SSL-Serverzertifikatprobleme
Wenn Sie eine Verbindung mit einer IIS-gehosteten Website über HTTPS herstellen, handelt der Server und der Client (Webbrowser) eine TLS-Verbindung (Transport Layer Security) zwischen ihnen aus.
Hinweis
TLS ist die aktualisierte Version der SECURE Sockets Layer (SSL)-Technologie, obwohl "SSL" derzeit der häufigere Begriff für Sicherheitszertifikate bleibt.
Während der Aushandlung stellt IIS ein Serverzertifikat an den verbindungsbasierten Client bereit. Das zurückgegebene Zertifikat ist möglicherweise nicht das erwartete Zertifikat und kann vom Client nicht als vertrauenswürdig eingestuft werden. Dadurch wird verhindert, dass der Client die Verbindung mit dem Webserver über TLS abschließen kann.
Laufzeit-Ausnahmen und -Fehler, einschließlich HTTP 4 xx- und 5 xx-Statuscodes
Wenn Sie auf bestimmte Ressourcen in IIS-gehosteten Webanwendungen zugreifen oder bestimmte Aktionen ausführen, während Sie diese Websites durchsuchen, lösen die IIS-Webanwendungen oder Websites zufällig oder konsistent Fehler aus. Möglicherweise erhalten Sie "500"-Statuscode-Fehlermeldungen ("Interner Serverfehler"), die verschiedene Fehlerausnahmen bei der Ausführung von serverseitigem Code für die Website melden. Möglicherweise erhalten Sie auch "400"-Statuscode-Fehlermeldungen ("ungültige Anforderung"), die zurückgegeben werden, wenn Sie auf Webdienste wie ASP.NET-Web-API zugreifen und versuchen, Daten an einen Webdienstendpunkt zu senden. Unerwartete Authentifizierungsaufforderungen oder "Zugriff verweigert"-Anforderungen, die durch die Statuscodes "401" und "403" dargestellt werden, können ebenfalls auftreten.
Handlerzuordnungsprobleme
Anforderungen, die an den Webserver gesendet werden, werden einem bestimmten Handler zugeordnet (z. B. verwalteter .NET-Handler) und mithilfe einer Webanwendung registriert, die auf dem Server bereitgestellt wird. Der Handler verarbeitet die Anforderungen und gibt eine HTTP-Antwort zurück. Einige Anforderungen werden möglicherweise an den unerwarteten Handler weitergeleitet. Beispielsweise werden die Anforderungen am Ende vom falschen Handler ausgeführt (z. B. dem Handler für statische Dateien), und dies löst einen 403.14-Statuscode aus ("eine Verzeichnisauflistungsanforderung ist nicht zulässig").
HTTP-Umleitungsproblem
Eine Website oder Webanwendung leitet Benutzer, die über eine unsichere Verbindung auf die Website zugreifen, nicht zu einem verschlüsselten Kanal um (über TLS). Oder, Umleitungen bestimmter Anforderungen oder Ressourcen zu neueren URLs geben nicht den erwarteten Inhalt zurück. Dieses Problem tritt entweder auf, weil der Client ständig zwischen zwei Seiten umgeleitet wird, bis der Browser eine Fehlermeldung anzeigt, oder weil der Client vom IIS-Server falsch umgeleitet wurde.
Fehler in der IIS-Verwaltungskonsole
Wenn Sie über die IIS Manager-Konsole auf Website- oder Webanwendungseinstellungen zugreifen, erhalten Sie Fehlermeldungen, die auf eine falsche oder ungültige Konfiguration hinweisen. Sie können nicht auf bestimmte Teile der Websitekonfiguration zugreifen (z. B. Authentifizierungseinstellungen, registrierte Module oder Handler). Darüber hinaus reagiert IIS-Manager nicht mehr, wenn Sie versuchen, sie zu starten oder wenn Sie versuchen, eine Verbindung mit einer bestimmten Website herzustellen.
IIS-Erweiterungen, Tools und Add-In-Probleme
Wenn Sie eine IIS-Erweiterung, z. B. Application Request and Routing (ARR), zu einem Webserver hinzufügen, um Ihren Webserver in einen Lastenausgleich oder einen Reverseproxy zu konvertieren, verursachen Anforderungen, die an den Server gesendet werden, auf dem IIS ausgeführt wird, unerwartetes Verhalten. Beispielsweise wird ein Statuscode "500" oder "400" zurückgegeben, oder Antworten enthalten falschen Inhalt.
PROBLEME MIT DEM FTP-Dienst
Der FTP-Dienst ist ein wichtiger Bestandteil des IIS-Webservers. Es ermöglicht Benutzern das Hochladen oder Herunterladen großer Dateien über FTP-Verbindungen (Dateiübertragungsprotokoll) oder FTPS-Verbindungen (sichere Verbindungen). Wenn Sie einen FTP-Server für IIS zum Auflisten, Herunterladen oder Hochladen von Dateien verwenden, erhalten Sie Statuscodes vom Typ "5 xx"(z. B. einen FTP-Statuscode "550", der angibt, dass ein bestimmter Befehl, der an den Server gesendet wurde, nicht ausgeführt wurde).
Serverfarmkonfigurationsprobleme
Wenn Sie eine Webanwendung oder eine Website in einer Farm ausführen, die aus mehreren IIS-Diensten besteht, treten Probleme auf, wenn nachfolgende Anforderungen desselben Benutzers (Clients) an verschiedene Server der Serverfarm weitergeleitet werden. Diese Fehler reichen von Anforderungen, die abgelehnt werden und Statuscodes "4 xx" generieren, bis hin zu Serverfehlern wie z. B. den Statuscodes "5 xx". Diese Fehler können durch Inkonsistenzen in der Konfiguration der Server in der Farm verursacht werden.
Lösung
Wenn Sie diese Arten von Problemen an den Microsoft-Support melden, müssen Sie alle Telemetriedaten angeben, die zum Diagnostizieren des Problems erforderlich sind. Wenn ein Problem auf einem Produktionsserver auftritt, ermöglicht eine vollständige und zeitnahe Datenerfassungsstrategie eine schnellere Lösungszeit. Verwenden Sie das Microsoft LogCatcher-Tool für die automatisierte Datenerfassung, um schnellere und konsistentere Telemetriedaten zu sammeln, die alle erforderlichen Daten vom Webserver erfassen. Microsoft-Support-Agents werden Sie bitten, das Tool aus dem GitHub Repository () herunterzuladen und zu installieren.
Die Willkommensseite in LogCatcher enthält Anweisungen zur Verwendung. Die Benutzeroberfläche ähnelt dem folgenden Screenshot.
Am unteren Rand des Hauptfensters zeigt LogCatcher eine Liste der Websites an, die auf dem Server gehostet werden, auf dem das Tool ausgeführt wird, sowie die entsprechenden Anwendungspools und den Inhaltsspeicherort jeder Website.
Um die daten zu filtern, die aus Ihrem System gesammelt werden, sammeln Sie Daten nur aus einer Teilmenge der Websites aus der Liste und nur für eine bestimmte Dauer (ausgedrückt in der Anzahl der Tage, die von heute zurückgezählt werden). Sie können die Textfelder "Website-IDs" bzw. "Protokollalter" verwenden.
Bestimmen Sie die Filter, die Sie anwenden möchten, auf welche Websites sie angewendet werden sollen und in welchem Zeitraum die Daten gesammelt werden sollen. Drücken Sie dann die SCHALTFLÄCHE "ZIP generieren", und beginnen Sie mit dem Prozess der Protokollsammlung. Die Statusleiste wird grün, wenn die Datensammlung abgeschlossen ist, um zu bestätigen, dass alle erforderlichen Protokolle erfasst und in eine .zip Datei komprimiert wurden. Die Statusleiste stellt auch den Dateispeicherort bereit.
Windows Datei-Explorer öffnet automatisch den Ordner, in dem die komprimierte Protokolldatei gespeichert wurde.
LogCatcher sammelt die folgenden Informationen:
- Die IIS-Konfigurationsdateien (unter C:\WINDOWS\system32\inetsrv\config)
- The HTTP.sys logs (located at C:\Windows\System32\LogFiles\HTTPERR)
- Die System-, Anwendungs-, Sicherheits-, Setup-, Microsoft-IIS-Konfigurations- und CAPI2-Ereignisprotokolle.
- Die IIS-Protokolldateien für die ausgewählten Websites.
- Die Fehleranforderungsablaufverfolgungen für die ausgewählten Websites.
LogCatcher lädt keine der generierten Archivdateien automatisch auf die Microsoft-Server hoch. Das Tool automatisiert nur die Datensammlung. Sie können den Inhalt des .zip Archivs überprüfen, das vom Tool generiert wird, um zu sehen, welche Daten gesammelt wurden, oder Sie können die Datei zur Analyse an Microsoft hochladen.
Wenn Sie Protokolle von mehreren Servern sammeln müssen und nicht jedes Mal auf die Benutzeroberfläche für die Datengenerierung klicken möchten, oder wenn Sie mit der Befehlszeile vertrauter sind, führen Sie das Tool direkt über PowerShell aus. Führen Sie den Befehl "Get-Help" aus, um weitere Informationen dazu zu erhalten.
Im Folgenden finden Sie Beispiele zum Ausführen des Tools aus der PowerShell-CLI, einschließlich möglicher Parameter.
-------------------------- EXAMPLE 1 --------------------------
PS C:\> .\LogCatcher.ps1
Mit diesem Befehl wird "LogCatcher" mit der Benutzeroberfläche gestartet.
-------------------------- EXAMPLE 2 --------------------------
PS C:\> .\LogCatcher.ps1 -Quiet $true -ZipLocation "C:\Temp"
Dieser Befehl startet LogCatcher mit CLI und legt einen benutzerdefinierten .zip Speicherort für die Archivgenerierung fest.
-------------------------- EXAMPLE 3 --------------------------
PS C:\> .\LogCatcher.ps1 -Quiet $true -LogAge 45 -SiteIds "1,2,3,4"
Dieser Befehl gibt das maximale Alter aller zu sammelnden Protokolle und die IIS-Bezeichner für jeden Standort an, für den Protokolle gesammelt werden sollen.
Weitere Informationen
Weitere Informationen zum LogCatcher-Tool finden Sie in diesem LogCatcher-Blogartikel.