Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der IIS-Webserver ermöglicht Administratoren, Websitebesitzern und Webanwendungsbesitzern eine vielzahl von Möglichkeiten, Telemetrie und Metriken zu generieren, wie gehostete Webanwendungen ausgeführt werden: aus den IIS-Anforderungsprotokollen, fehler beim Anforderungsprotokollprotokoll, Ereignisanzeigeeinträge und viele mehr. Diese Telemetrieteile können an verschiedenen Stellen auf dem Windows-Server verteilt werden, der IIS ausführt, und alle davon sammeln, wenn die Problembehandlung zeitaufwändig sein kann, insbesondere, wenn die Anzahl der gehosteten Anwendungen groß ist. Das IIS-Supportteam hat ein Tool für diese spezifische Aufgabe erstellt: LogCather ist ein Tool, mit dem die Sammlung von IIS-Telemetrie- und Konfigurationsdaten an einen zentralen Speicherort ermöglicht wird, sodass Administratoren den gesamten Server oder nur eine Teilmenge der gehosteten Anwendungen als Ziel festlegen 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.
Notiz
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 zur Datensammlung beschrieben, um häufig auftretende PROBLEME mit IIS-Webservern zu beheben.
SSL- und SSL-Serverzertifikatprobleme
Wenn Sie eine Verbindung mit einer von IIS gehosteten Website über HTTPS herstellen, verhandeln der Server und der Client (Webbrowser) eine TLS-Verbindung (Transport Layer Security) zwischen ihnen.
Notiz
TLS ist die aktualisierte Version der SSL-Technologie (Secure Sockets Layer), obwohl "SSL" zurzeit die häufigere Bezeichnung 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 es ist möglicherweise nicht vom Client vertrauenswürdig. Dadurch wird verhindert, dass der Client die Verbindung mit dem Webserver über TLS abschließen kann.
Laufzeit exceptions and errors, including HTTP 4xx and 5xx status codes
Wenn Sie auf bestimmte Ressourcen in von 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" Statuscodefehlermeldungen ("interner Server"-Fehler), die verschiedene Fehler ausnahmen bei der Ausführung von serverseitigem Code für die Website melden. Möglicherweise erhalten Sie auch Fehlermeldungen mit dem Statuscode "400" ("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.
Probleme bei der Handlerzuordnung
Anforderungen, die an den Webserver gesendet werden, werden einem bestimmten Handler (z. B. verwalteter .NET-Handler) zugeordnet 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. Die Anforderungen werden beispielsweise vom falschen Handler (z. B. dem Statischen Dateihandler) ausgeführt, und dadurch wird ein Statuscode 403.14 ausgelöst ("eine Verzeichnisauflistungsanforderung ist nicht zulässig").
HTTP-Umleitungsprobleme
Eine Website oder Webanwendung leitet keine Benutzer um, die über eine unsichere Verbindung zu einem verschlüsselten Kanal (über TLS) auf die Website zugreifen. Oder umleitungen bestimmter Anforderungen oder Ressourcen an neuere URLs geben den erwarteten Inhalt nicht 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 der IIS-Manager nicht mehr, wenn Sie versuchen, sie zu starten, oder wenn Sie versuchen, eine Verbindung mit einer bestimmten Website herzustellen.
Probleme mit IIS-Erweiterungen, -Tools und -Add-Ins
Wenn Sie eine IIS-Erweiterung wie 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 falsche Inhalte.
FTP-Dienstprobleme
Der FTP-Dienst ist ein wichtiger Bestandteil des IIS-Webservers. Sie ermöglicht Benutzern das Hochladen oder Herunterladen großer Dateien über FTP-Verbindungen (File Transfer Protocol) oder FTPS-Verbindungen (sichere) Verbindungen. Wenn Sie einen FTP-Server für IIS zum Auflisten, Herunterladen oder Hochladen von Dateien verwenden, erhalten Sie statuscodes "5xx" (z. B. einen FTP-Statuscode "550", der angibt, dass ein bestimmter Befehl, der an den Server gesendet wurde, nicht ausgeführt wurde).
Probleme mit der Serverfarmkonfiguration
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 (Client) an verschiedene Server der Serverfarm weitergeleitet werden. Diese Fehler reichen von Anforderungen, die abgelehnt werden, und generieren "4xx"-Statuscodes für Serverfehler, z. B. die Statuscodes "5xx". Diese Fehler können durch Inkonsistenzen in der Konfiguration der Server in der Farm verursacht werden.
Lösung
Wenn Sie diese Arten von Problemen Microsoft-Support melden, müssen Sie alle Telemetriedaten bereitstellen, die zum Diagnostizieren des Problems erforderlich sind. Wenn ein Problem auf einem Produktionsserver auftritt, ermöglicht eine vollständige und zeitnahe Datensammlungsstrategie eine schnellere Auflösungszeit. Verwenden Sie das Microsoft LogCatcher-Tool zum automatisierten Sammeln von Daten für schnellere und konsistentere Telemetriedatensammlungen aller erforderlichen Daten vom Webserver. Microsoft-Support Agents werden Sie bitten, das Tool aus dem GitHub-Repository () herunterzuladen und zu installieren.
Der Willkommensbildschirm 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 Inhaltsspeicherorte jeder Website.
Um die Daten zu filtern, die aus Ihrem System gesammelt werden, sammeln Sie Daten nur aus einer Teilmenge von Websites aus der Liste und nur für eine bestimmte Dauer (ausgedrückt in der Anzahl der Tage, die von heute rückwärts gezählt werden). Sie können die Textfelder "Website-IDs " und "Protokollalter" verwenden.
Bestimmen Sie die Filter, auf die Sie anwenden möchten, auf welche Websites sie angewendet werden sollen, und legen Sie fest, auf welchen Zeitraum die Daten gesammelt werden sollen. Drücken Sie dann die SCHALTFLÄCHE "ZIP GENERIEREN ", und beginnen Sie mit dem Protokollsammlungsprozess. Die Statusleiste wird grün, wenn die Datensammlung abgeschlossen ist, um zu bestätigen, dass alle erforderlichen Protokolle gesammelt und in eine .zip Datei komprimiert wurden. Die Statusleiste stellt auch den Dateispeicherort bereit.
Windows 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)
- Die HTTP.sys Protokolle (unter C:\Windows\System32\LogFiles\HTTPERR)
- Die Ereignisprotokolle "System", "Application", "Security", "Setup", "Microsoft-IIS-Configuration" und "CAPI2".
- 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 untersuchen, das von dem Tool generiert wird, um zu sehen, welche Daten gesammelt wurden, oder Sie können die Datei zur Analyse bei Microsoft hochladen.
Wenn Sie Protokolle von mehreren Servern sammeln müssen und nicht jedes Mal durch die Benutzeroberfläche der Datengenerierung klicken möchten, oder wenn Sie mit der Befehlszeile vertrauter sind, führen Sie das Tool direkt über PowerShell aus. Um weitere Informationen dazu zu erhalten, führen Sie den Befehl "Get-Help " aus.
Im Folgenden sind Beispiele zum Ausführen des Tools aus der PowerShell CLI aufgeführt, einschließlich möglicher Parameter.
-------------------------- EXAMPLE 1 --------------------------
PS C:\> .\LogCatcher.ps1
Dieser Befehl startet LogCatcher mit der Benutzeroberfläche.
-------------------------- 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 Protokolle an, die gesammelt werden sollen, und die IIS-IDs für jede Website, für die Protokolle gesammelt werden sollen.
Weitere Informationen
Weitere Informationen zum LogCatcher-Tool finden Sie in diesem LogCatcher-Blogartikel.