Fehlerdefinitionen <failureDefinitions>
Übersicht
Das <failureDefinitions>
-Element definiert die Bedingungen, unter denen Anforderungen nachverfolgt werden sollen. Eine Fehlerbedingung besteht aus Statuscodes, einem Zeitintervall oder einer Kombination aus beiden. Darüber hinaus können Sie die Ausführlichkeitsebene für die Ablaufverfolgung angeben.
Hinweis
Durch das Hinzufügen zusätzlicher Ausführlichkeitsoptionen wird IIS so konfiguriert, dass weitere Informationen in Ihren Ablaufverfolgungsprotokollen zurückgegeben werden, aber ausführliche Protokolle werden möglicherweise ziemlich groß. Wenn Ihre Protokolldateien die maximale Dateigröße überschreiten, die durch das attribut maxLogFileSizeKB-Attribut des <traceFailedRequestsLogging>
-Elements definiert wird, werden Die Protokolldateien bei der maximalen Größe abgeschnitten, und Sie müssen die in diesem Attribut angegebene Dateigröße erhöhen.
Kompatibilität
Version | Hinweise |
---|---|
IIS 10.0 | Das traceAllAfterTimeout -Attribut wurde dem <failureDefinitions> -Element in IIS 10.0 hinzugefügt. |
IIS 8.5 | Das <failureDefinitions> -Element wurde in IIS 8.5 nicht geändert. |
IIS 8.0 | Das <failureDefinitions> -Element wurde in IIS 8.0 nicht geändert. |
IIS 7.5 | Das <failureDefinitions> -Element wurde in IIS 7.5 nicht geändert. |
IIS 7.0 | Das <failureDefinitions> -Element wurde in IIS 7.0 eingeführt. |
IIS 6.0 | N/V |
Setup
Nachdem Sie die Standardinstallation von IIS 7 und höher abgeschlossen haben, müssen Sie den Ablaufverfolgungsrollendienst installieren, um die Ablaufverfolgung fehlgeschlagener Anforderungen zu verwenden. Nachdem Sie den Rollendienst installiert haben, müssen Sie dennoch die Ablaufverfolgung für Anforderungsfehler auf Site-, Anwendungs- oder Verzeichnisebene aktivieren.
Windows Server 2012 oder Windows Server 2012 R2
- Klicken Sie auf der Taskleiste auf Server-Manager.
- Klicken Sie im Server-Manager auf Verwalten und dann auf Rollen und Features hinzufügen.
- Klicken Sie im Assistenten zum Hinzufügen von Rollen und Features auf Weiter. Wählen Sie den Installationstyp aus, und klicken Sie auf Weiter. Wählen Sie den Zielserver aus, und klicken Sie auf Weiter.
- Erweitern Sie auf der Seite Serverrollen den Webserver (IIS) erweitern Sie den Webserver, erweitern Sie Integrität und Diagnose, und wählen Sie dann Ablaufverfolgung. Klicken Sie auf Weiter.
. - Klicken Sie auf der Seite Features auswählen auf Weiter.
- Klicken Sie auf der Seite Installationsauswahl bestätigen auf Installieren.
- Klicken Sie auf der Seite Ergebnisse auf Schließen.
Windows 8 oder Windows 8.1
- Bewegen Sie auf dem Startbildschirm den Mauszeiger ganz nach links unten, klicken Sie mit der rechten Maustaste auf die Schaltfläche Start und klicken Sie dann auf Systemsteuerung.
- Klicken Sie in der Systemsteuerung auf Programme und dann auf Windows-Features aktivieren oder deaktivieren.
- Erweitern Sie Internetinformationsdienste, erweitern Sie World Wide Web Services, erweitern SieIntegrität und Diagnose, und wählen Sie dann Ablaufverfolgung.
- Klicken Sie auf OK. - Klicken Sie auf Schließen.
Windows Server 2008 oder Windows Server 2008 R2
- Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltungstools und klicken Sie dann auf Server-Manager.
- Erweitern Sie im Hierarchiebereich des Server-Managers die Rollen und klicken Sie dann auf den Webserver (IIS).
- Scrollen Sie im Bereich Webserver (IIS) zum Abschnitt "Rollendienste ", und klicken Sie dann auf "Rollendienstehinzufügen".
- Wählen Sie auf der Seite Rollendienste auswählen des Assistenten zum Hinzufügen von RollendienstenNachverfolgung aus, und klicken Sie dann auf Weiter.
- Klicken Sie auf der Seite Installationsauswahl bestätigen auf Installieren.
- Klicken Sie auf der Seite Ergebnisse auf Schließen.
Windows Vista oder Windows 7
- Klicken Sie auf der Taskleiste auf Start und dann auf Systemsteuerung.
- Klicken Sie in der Systemsteuerungauf Programme und Funktionenund dann auf Windows-Features aktivieren oder deaktivieren.
- Erweitern Sie Internetinformationsdienste, und World Wide Web Services, und dann Integrität und Diagnose.
- Wählen Sie Nachverfolgung aus und klicken Sie dann auf OK.
Gewusst wie
Aktivieren der Ablaufverfolgung
Öffnen Sie den Internet Information Services (IIS) Manager:
Wenn Sie Windows Server 2012 oder Windows Server 2012 R2 verwenden:
- Klicken Sie in der Taskleiste auf Server-Manager, dann auf Tools und dann auf den Internet Information Services (IIS) Manager.
Wenn Sie Windows 8 oder Windows 8.1 verwenden:
- Halten Sie die Windows-Taste gedrückt, drücken Sie den Buchstaben X, und klicken Sie dann auf "Systemsteuerung".
- Klicken Sie auf Verwaltungund doppelklicken Sie dann auf den Internet Information Services (IIS) Manager.
Wenn Sie Windows Server 2008 oder Windows Server 2008 R2 verwenden:
- Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltung und dann auf den Internet Information Services (IIS) Manager.
Wenn Sie Windows Vista oder Windows 7 verwenden:
- Klicken Sie auf der Taskleiste auf Start und dann auf Systemsteuerung.
- Doppelklicken Sie auf Verwaltung und doppelklicken Sie dann auf den Internet Information Services (IIS) Manager.
Wählen Sie im Bereich Verbindungen die Serververbindung, die Site, die Anwendung oder das Verzeichnis aus, für die Sie die Nachverfolgung für fehlerhafte Anforderungen konfigurieren möchten.
Klicken Sie im Bereich Aktionen auf Fehlgeschlagene Anforderungsablaufverfolgung...
Wählen Sie im Dialogfeld Einstellungen für die Anforderungsablaufverfolgung der Website bearbeiten das Kontrollkästchen Aktivieren, um die Ablaufverfolgung zu aktivieren, lassen Sie den Standardwert stehen oder geben Sie ein neues Verzeichnis im Feld Verzeichnis ein, in dem Sie fehlgeschlagene Anforderungsprotokolldateien speichern möchten. Geben Sie die Anzahl der fehlgeschlagenen Anforderungsablaufverfolgungsdateien im Feld Maximale Anzahl von Ablaufverfolgungsdateien ein und klicken Sie dann auf OK.
Konfigurieren von Fehlerdefinitionen
Öffnen Sie den Internet Information Services (IIS) Manager:
Wenn Sie Windows Server 2012 oder Windows Server 2012 R2 verwenden:
- Klicken Sie in der Taskleiste auf Server-Manager, dann auf Tools und dann auf den Internet Information Services (IIS) Manager.
Wenn Sie Windows 8 oder Windows 8.1 verwenden:
- Halten Sie die Windows-Taste gedrückt, drücken Sie den Buchstaben X, und klicken Sie dann auf "Systemsteuerung".
- Klicken Sie auf Verwaltungund doppelklicken Sie dann auf den Internet Information Services (IIS) Manager.
Wenn Sie Windows Server 2008 oder Windows Server 2008 R2 verwenden:
- Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltung und dann auf den Internet Information Services (IIS) Manager.
Wenn Sie Windows Vista oder Windows 7 verwenden:
- Klicken Sie auf der Taskleiste auf Start und dann auf Systemsteuerung.
- Doppelklicken Sie auf Verwaltung und doppelklicken Sie dann auf den Internet Information Services (IIS) Manager.
Wählen Sie im Bereich Verbindungen die Verbindung, die Site, die Anwendung oder das Verzeichnis aus, für die Sie die Nachverfolgung für fehlerhafte Anforderungen konfigurieren möchten.
Doppelklicken Sie unter Home auf Nachverfolgungsregeln für fehlerhafte Anforderungen.
Klicken Sie im Bereich Aktionen auf Hinzufügen...
Wählen Sie auf der Seite Inhalt zur Ablaufverfolgung angeben des Assistenten zum Hinzufügen der Regel zur Ablaufverfolgung von Fehlgeschlagenen Anforderungen den Inhaltstyp aus, den Sie nachverfolgen möchten und klicken Sie dann auf Weiter.
Wählen Sie auf der Seite Ablaufverfolgungsbedingungen definieren die Bedingungen aus, die Sie nachverfolgen möchten, und klicken Sie dann auf Weiter. Zu den Ablaufverfolgungsbedingungen können eine beliebige Kombination von Statuscodes, ein Zeitlimit, das eine Anforderung in Anspruch nehmen sollte, oder der Schweregrad des Ereignisses gehören. Wenn Sie alle Bedingungen angeben, generiert die erste Bedingung, die erfüllt ist, die Ablaufverfolgungsprotokolldatei für die fehlerhafte Anforderung.
Wählen Sie auf der Seite Ablaufverfolgungsanbieter auswählen einen oder mehrere der Ablaufverfolgungsanbieter unter Anbieter aus.
Wählen Sie auf der Seite Ablaufverfolgungsanbieter auswählen unter Ausführlichkeit mindestens eine der Ausführlichkeitsstufen aus.
Wenn Sie den ASPNET oder WWW Server-Ablaufverfolgungsanbieter in Schritt 8 ausgewählt haben, wählen Sie einen oder mehrere Funktionsbereiche für den Anbieter aus, der unter Bereiche der Seite Ablaufverfolgungsanbieter auswählen nachverfolgt werden soll.
Klicken Sie auf Fertig stellen.
Konfiguration
Attribute
Attribut | Beschreibung | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
statusCodes |
Optionales Zeichenfolgeattribut. Gibt den/die Statuscode(s) an, den/die Sie nachverfolgen möchten. Sie können in dieser Liste mehrere Statuscodes eingeben, indem Sie Kommas verwenden, um jeden Code zu trennen. Sie können Ihre Statuscodes auch mithilfe von Unterstatuscodes wie „404.2, 500“ oder einem Bereich von Unterstatuscodes wie „400-599“ verfeinern. Wenn Sie keine Unterstatuscodes angeben, werden alle Unterstatuscodes für den angegebenen Statuscode nachverfolgt. Statuscodes müssen im Bereich von 100 bis 999 sein, und Unterstatuscodes müssen im Bereich von 1 bis 999 sein. |
||||||||||
timeTaken |
Optionales timeSpan-Attribut. Gibt die maximale Zeit an, die eine Anforderung in der Verarbeitung verbringen kann, bevor sie als fehlgeschlagen gekennzeichnet und dann nachverfolgt wird. Der Standardwert ist 00:00:00 . |
||||||||||
traceAllAfterTimeout |
Optionales boolesches Attribut.true wenn IIS die gesamte Anforderung fortsetzen soll, wenn ein Timeout erreicht ist; andernfalls false , sollte IIS die Ablaufverfolgung abschneiden, wenn das Timeout aufgetreten ist.Der Standardwert ist false . |
||||||||||
verbosity |
Optionales Enumerationsattribut. Gibt die minimale Menge an Informationen und den Typ der Informationen an, die im Ablaufverfolgungsprotokoll gespeichert werden. Wenn die Ausführlichkeit auf „Error“ festgelegt ist, wird eine Protokolldatei für die Fehleranforderungsablaufverfolgung für die Anforderung erstellt, wenn das erste Ablaufverfolgungsereignis, dessen Ausführlichkeit entweder Error oder CriticalError ist, empfangen wird. Das Verbosity-Attribut kann einen der folgenden möglichen Werte haben. Der Standardwert ist Ignore .
|
Untergeordnete Elemente
Keine.
Konfigurationsbeispiel
Im folgenden Konfigurationsbeispiel wird die Ablaufverfolgung auf Serverebene in der Datei ApplicationHost.config konfiguriert. Es legt die Ablaufverfolgung für alle .aspx Dateien fest, verwendet das <traceAreas>
Element, um den ASPNET-Anbieter und die Ablaufverfolgung für alle ASP.NET Bereiche festzulegen, die Infrastructure, Module, Page und AppServices sind. Im Beispiel wird auch das Attribut Ausführlichkeit verwendet, um die Menge der Informationen, die an die Ablaufverfolgungsdatei zurückgegeben werden, auf Warnung festzulegen. Schließlich verwendet das Beispiel das <failureDefinitions>
Element, um nur Anforderungen zu verfolgen, die einen HTTP 404-Statuscode generieren.
<tracing>
<traceFailedRequests>
<add path="*.aspx">
<traceAreas>
<add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Warning" />
</traceAreas>
<failureDefinitions statusCodes="404" />
</add>
</traceFailedRequests>
</tracing>
Beispielcode
In den folgenden Beispielen werden ausführliche Fehler bei der Anforderungsablaufverfolgung für HTTP 500-Fehler in ASP.NET Inhalt aller Anforderungen an *.aspx Seiten aktiviert.
AppCmd.exe
appcmd.exe set config "Contoso" -section:system.webServer/tracing/traceFailedRequests /+"[path='*.aspx']"
appcmd.exe set config "Contoso" -section:system.webServer/tracing/traceFailedRequests /+"[path='*.aspx'].traceAreas.[provider='ASPNET',areas='Infrastructure,Module,Page,AppServices',verbosity='Verbose']"
appcmd.exe set config "Contoso" -section:system.webServer/tracing/traceFailedRequests /[path='*.aspx'].failureDefinitions.statusCodes:"500"
C#
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample
{
private static void Main()
{
using (ServerManager serverManager = new ServerManager())
{
Configuration config = serverManager.GetWebConfiguration("Contoso");
ConfigurationSection traceFailedRequestsSection = config.GetSection("system.webServer/tracing/traceFailedRequests");
ConfigurationElementCollection traceFailedRequestsCollection = traceFailedRequestsSection.GetCollection();
ConfigurationElement addElement = traceFailedRequestsCollection.CreateElement("add");
addElement["path"] = @"*.aspx";
ConfigurationElementCollection traceAreasCollection = addElement.GetCollection("traceAreas");
ConfigurationElement addElement1 = traceAreasCollection.CreateElement("add");
addElement1["provider"] = @"ASPNET";
addElement1["areas"] = @"Infrastructure,Module,Page,AppServices";
addElement1["verbosity"] = @"Verbose";
traceAreasCollection.Add(addElement1);
ConfigurationElement failureDefinitionsElement = addElement.GetChildElement("failureDefinitions");
failureDefinitionsElement["statusCodes"] = @"500";
traceFailedRequestsCollection.Add(addElement);
serverManager.CommitChanges();
}
}
}
VB.NET
Imports System
Imports System.Text
Imports Microsoft.Web.Administration
Module Sample
Sub Main()
Dim serverManager As ServerManager = New ServerManager
Dim config As Configuration = serverManager.GetWebConfiguration("Contoso")
Dim traceFailedRequestsSection As ConfigurationSection = config.GetSection("system.webServer/tracing/traceFailedRequests")
Dim traceFailedRequestsCollection As ConfigurationElementCollection = traceFailedRequestsSection.GetCollection
Dim addElement As ConfigurationElement = traceFailedRequestsCollection.CreateElement("add")
addElement("path") = "*.aspx"
Dim traceAreasCollection As ConfigurationElementCollection = addElement.GetCollection("traceAreas")
Dim addElement1 As ConfigurationElement = traceAreasCollection.CreateElement("add")
addElement1("provider") = "ASPNET"
addElement1("areas") = "Infrastructure,Module,Page,AppServices"
addElement1("verbosity") = "Verbose"
traceAreasCollection.Add(addElement1)
Dim failureDefinitionsElement As ConfigurationElement = addElement.GetChildElement("failureDefinitions")
failureDefinitionsElement("statusCodes") = "500"
traceFailedRequestsCollection.Add(addElement)
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso";
var traceFailedRequestsSection = adminManager.GetAdminSection("system.webServer/tracing/traceFailedRequests", "MACHINE/WEBROOT/APPHOST/Contoso");
var traceFailedRequestsCollection = traceFailedRequestsSection.Collection;
var addElement = traceFailedRequestsCollection.CreateNewElement("add");
addElement.Properties.Item("path").Value = "*.aspx";
var traceAreasCollection = addElement.ChildElements.Item("traceAreas").Collection;
var addElement1 = traceAreasCollection.CreateNewElement("add");
addElement1.Properties.Item("provider").Value = "ASPNET";
addElement1.Properties.Item("areas").Value = "Infrastructure,Module,Page,AppServices";
addElement1.Properties.Item("verbosity").Value = "Verbose";
traceAreasCollection.AddElement(addElement1);
var failureDefinitionsElement = addElement.ChildElements.Item("failureDefinitions");
failureDefinitionsElement.Properties.Item("statusCodes").Value = "500";
traceFailedRequestsCollection.AddElement(addElement);
adminManager.CommitChanges();
VBScript
Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso"
Set traceFailedRequestsSection = adminManager.GetAdminSection("system.webServer/tracing/traceFailedRequests", "MACHINE/WEBROOT/APPHOST/Contoso")
Set traceFailedRequestsCollection = traceFailedRequestsSection.Collection
Set addElement = traceFailedRequestsCollection.CreateNewElement("add")
addElement.Properties.Item("path").Value = "*.aspx"
Set traceAreasCollection = addElement.ChildElements.Item("traceAreas").Collection
Set addElement1 = traceAreasCollection.CreateNewElement("add")
addElement1.Properties.Item("provider").Value = "ASPNET"
addElement1.Properties.Item("areas").Value = "Infrastructure,Module,Page,AppServices"
addElement1.Properties.Item("verbosity").Value = "Verbose"
traceAreasCollection.AddElement addElement1
Set failureDefinitionsElement = addElement.ChildElements.Item("failureDefinitions")
failureDefinitionsElement.Properties.Item("statusCodes").Value = "500"
traceFailedRequestsCollection.AddElement addElement
adminManager.CommitChanges()