Problemen met mislukte aanvragen oplossen met behulp van tracering in IIS 8.5
Van toepassing op: Internet Information Services 8.5
Inleiding
Tracering op basis van aanvragen is zowel beschikbaar in zelfstandige IIS-servers als op Microsoft Azure-websites (WAWS). Als u het probleem dat u ondervindt, kunt reproduceren, biedt tracering op basis van aanvragen een manier om te bepalen wat er precies gebeurt met uw aanvragen en waarom dit gebeurt. Problemen zoals slechte prestaties bij sommige aanvragen, verificatiegerelateerde fouten in andere aanvragen of de server 500-fout van ASP of ASP.NET kunnen vaak moeilijk worden opgelost, tenzij u de tracering van het probleem hebt vastgelegd wanneer het optreedt. In dit artikel wordt het traceren van mislukte aanvragen op IIS-server besproken. Zie Problemen met een app in Azure-app Service oplossen met Behulp van Visual Studio voor meer informatie over hoe u dit doet met Microsoft Azure-websites.
Tracering van mislukte aanvragen is ontworpen om de traceringsgebeurtenissen voor een aanvraag te bufferen en deze alleen naar schijf te leegmaken als de aanvraag mislukt, waarbij u de definitie van de fout opgeeft. Als u wilt weten waarom uw aanvragen een specifieke HTTP-statuscode retourneren, bijvoorbeeld 401 of 404, of als een aanvraag enige tijd in beslag neemt om te verwerken of niet reageert, kunt u Tracering van mislukte aanvragen gebruiken.
De taken die in dit artikel worden uitgelegd, zijn onder andere:
- De module Tracering van mislukte aanvragen inschakelen.
- Semantiek voor het traceren van mislukte aanvragen configureren.
- Definieer de URL waarvoor mislukte aanvraagtraceringen moeten worden bewaard, inclusief foutdefinities en gebieden die moeten worden getraceerd.
- Het genereren van de foutvoorwaarde en het weergeven van de resulterende tracering.
Voorwaarden
IIS installeren
Installeer IIS 8.5 voordat u de taken kunt uitvoeren die in dit artikel worden beschreven. Blader naar http://localhost/
en controleer of het welkomstscherm van Internet Information Services wordt weergegeven. Als IIS niet is geïnstalleerd, raadpleegt u IIS 8.5 installeren op Windows Server 2012 R2 voor installatie-instructies. Zorg er bij het installeren van IIS voor dat u ook de volgende functies installeert:
- ASP.NET 3.5 (onder Webserver (IIS)/Web Server/Application Development Features/ASP.NET 3.5)
- ASP.NET 4.5 (onder Webserver (IIS)/Web Server/Application Development Features/ASP.NET 4.5)
- Tracering (onder Webserver (IIS)/Webserverstatus/en diagnostische gegevens - Tracering)
Aanmelden als beheerder
Zorg ervoor dat het account dat u gebruikt om u aan te melden het beheerdersaccount is of zich in de beheerdersgroep bevindt.
Notitie
Als u zich in de beheerdersgroep bevindt, krijgt u standaard geen volledige beheerdersrechten. U moet toepassingen uitvoeren als beheerder door met de rechtermuisknop op het toepassingspictogram te klikken en Uitvoeren als administrator te selecteren.
Een back-up maken
Maak een back-up van de configuratiebestanden voordat u de volgende taken uitvoert:
Selecteer tegelijkertijd de Windows-logotoets en de X-toets , selecteer opdrachtprompt (beheerder) en selecteer vervolgens Ja.
Voer in de opdrachtprompt de volgende opdracht uit:
%windir%\system32\inetsrv\appcmd add backup cleanInstall
Met deze opdracht maakt u een cleanInstall-map met back-upconfiguratiebestanden in %windir%\system32\inetsrv\backup.
Voorbeeldinhoud maken
Navigeer naar %systemdrive%\inetpub\wwwroot.
Verplaats de inhoud naar een veilige locatie (voor het geval u de bestaande inhoud wilt herstellen) of verwijder deze.
Maak een leeg bestand en geef het test.asp een naam.
Navigeer in de opdrachtprompt naar het bestand test.asp in \inetpub\wwwroot.
Plak in het bestand test.asp de volgende inhoud:
<h2>Failed Request Tracing Lab</h2><br> <br>Today's date is <% response.write(Date()) %>
ASP uitschakelen
ASP moet zijn uitgeschakeld voor deze taak. ASP is alleen uitgeschakeld als voorbeeld en voor de doeleinden van de taken in dit artikel.
Voer de volgende stappen uit om ASP uit te schakelen:
Open IIS-beheer en selecteer de server.
Dubbelklik op ISAPI- en CGI-beperkingen.
Selecteer Active Server Pages in het deelvenster ISAPI- en CGI-beperkingen. Selecteer Weigeren in het deelvenster Acties om ASP uit te schakelen. Actieve serverpagina's worden weergegeven als Niet toegestaan.
Schakel tracering van mislukte aanvragen in
Nadat u Tracering van mislukte aanvragen hebt ingeschakeld, moet u het pad van de logboekbestanden configureren. In deze sectie schakelt u Tracering van mislukte aanvragen in voor de standaardwebsite en geeft u op waar de logboekbestanden moeten worden opgeslagen en configureert u vervolgens de fout waarvoor foutenlogboeken moeten worden gegenereerd.
Stap 1: Tracering van mislukte aanvragen voor de site inschakelen en de map met logboekbestanden configureren
Open een opdrachtprompt met beheerdersrechten en navigeer naar %systemdrive%\windows\system32\inetsrv.
Voer deze opdracht uit
inetmgr
om IIS-beheer te openen.Vouw in het deelvenster Verbindingen de computernaam uit, vouw Sites uit en selecteer vervolgens Standaardwebsite.
Selecteer in het deelvenster Acties onder Configureren de optie Tracering van mislukte aanvragen....
Configureer het volgende in het dialoogvenster Instellingen voor het traceren van mislukte aanvragen van website bewerken:
- Schakel het selectievakje Inschakelen in .
- Behoud de standaardinstellingen voor de andere instellingen.
Selecteer OK.
Logboekregistratie van mislukte aanvragen is nu ingeschakeld voor de standaardwebsite. Controleer het bestand %windir%\system32\inetsrv\config\applicationHost.config om te bevestigen dat de configuratie er als volgt uitziet:
<system.applicationHost> <!-- other system configuration --> <sites> <site name="Default Web Site" id="1"> <!-- other site configuration --> <traceFailedRequestsLogging enabled="true" /> </site> <!-- site & app defaults --> <!-- other sites configuration --> </sites> <!-- other system configuration --> </system.applicationHost>
Stap 2: Uw foutdefinities configureren
In deze stap configureert u de foutdefinities voor uw URL, inclusief de gebieden die u wilt traceren. U lost problemen op met een 404.2-statuscode die door IIS wordt geretourneerd voor aanvragen voor extensies die nog niet zijn ingeschakeld. Hiermee kunt u bepalen welke specifieke extensies u moet inschakelen. Zie HTTP-statuscodes in IIS voor meer informatie.
Open een opdrachtprompt met beheerdersrechten en navigeer naar %systemdrive%\windows\system32\inetsrv.
Voer deze opdracht uit
inetmgr
om IIS-beheer te openen.Vouw in het deelvenster Verbindingen de computernaam uit, vouw Sites uit en selecteer vervolgens Standaardwebsite.
Dubbelklik op Regels voor het traceren van mislukte aanvragen.
Selecteer In het deelvenster Acties de optie Toevoegen....
Selecteer in de wizard Regel voor het traceren van mislukte aanvragen toevoegen op de pagina Inhoud opgeven om te traceren alle inhoud (*) en selecteer vervolgens Volgende.
Schakel op de pagina Traceringsvoorwaarden definiëren het selectievakje Statuscode(s) in en voer 404.2 in als statuscode om te traceren.
Selecteer Volgende.
Schakel op de pagina Traceringsproviders onder Providers het selectievakje WWW-server in en schakel alle andere selectievakjes uit. Schakel onder Gebieden het selectievakje Beveiliging in en schakel alle andere selectievakjes uit.
Het probleem dat u genereert, zorgt ervoor dat een traceringsgebeurtenis voor beveiligingsfouten wordt gegenereerd. Over het algemeen kunnen problemen met verificatie en autorisatie (inclusief PROBLEMEN met de ISAPI-beperkingslijst) worden vastgesteld met behulp van de CONFIGURATIE van het WWW-server- beveiligingsgebied voor tracering. Omdat het freb.xsl-opmaakmodel echter helpt bij het markeren van fouten en waarschuwingen, kunt u nog steeds de standaardconfiguratie gebruiken om alle gebeurtenissen in alle gebieden en providers te registreren.
Selecteer uitgebreid onder Uitgebreidheid.
Notitie
Wanneer u de traceringsfunctieservice installeert, installeert IIS standaard de traceringsproviders www-server, ASP en ISAPI-extensie. Als u ASP.NET 2.0 of hoger installeert, voegt IIS automatisch de ASPNET-traceringsprovider toe. Aanvullende providers worden geïnstalleerd door het ARR-installatiepakket (Application Request Routing), waarmee ook de URL-herschrijfmodule, Webfarmbeheer en Externe cache wordt geïnstalleerd. U kunt meer traceringsproviders toevoegen met behulp van het
<add>
element in het<traceProviderDefinitions>
element.Selecteer Voltooien.
U ziet de volgende definitie voor de standaardwebsite:
IIS Manager schrijft de configuratie naar het
%systemdrive%\inetpub\wwwroot\web.config
bestand met behulp van een<location>
tag. De configuratie moet er ongeveer als volgt uitzien:<configuration> <system.webServer> <tracing> <traceFailedRequests> <add path="*"> <traceAreas> <add provider="WWW Server" areas="Security" verbosity="Verbose" /> </traceAreas> <failureDefinitions statusCodes="404.2" /> </add> </traceFailedRequests> </tracing> </system.webServer> </configuration>
Het logboekbestand voor mislukte aanvragen testen en weergeven
Deze sectie helpt u bij het genereren van een mislukte aanvraag en het resulterende traceringslogboek weer te geven. U hebt IIS al geconfigureerd voor het vastleggen van traceringslogboeken voor http://localhost/*.asp
aanvragen die mislukken met een HTTP-antwoordcode van 404.2. Controleer nu of het werkt.
Stap 1: Genereer een fout en het logboekbestand met mislukte aanvragen
Open een nieuw Internet Explorer-venster.
Voer de
http://localhost/test.asp
toets in en druk op Enter. Het foutbericht HTTP-fout 404.2 - Niet gevonden wordt weergegeven.
Stap 2: Het logboekbestand met mislukte aanvragen weergeven
Nu u een mislukte aanvraag hebt gegenereerd, opent u Windows Verkenner en gaat u naar %systemdrive%\inetpub\logs\FailedReqLogFiles\W3SVC1.
Notitie
Wanneer IIS het logboekbestand met mislukte aanvragen schrijft, wordt er één bestand per mislukte aanvraag geschreven. Er wordt ook een freb.xsl-opmaakmodel geschreven, één per map. Dit helpt bij het weergeven van de resulterende logboekbestanden voor mislukte aanvragen (zoals fr000001.xml in dit voorbeeld).
Klik met de rechtermuisknop op het logboekbestand voor de fout 404.2 en selecteer Openen met ->Internet Explorer. Als dit de eerste keer is dat u een bestand voor het traceren van mislukte aanvragen opent, moet u about:internet toevoegen aan de lijst met vertrouwde sites, omdat de verbeterde beveiligingsconfiguratie van Internet Explorer standaard is ingeschakeld. Zo ja, dan ziet u het volgende:
Voeg in het dialoogvenster Internet Explorer about:internet toe aan de lijst met vertrouwde sites door de volgende stappen uit te voeren:
- Selecteer het menu Extra en selecteer vervolgens Internetopties.
- Selecteer het tabblad Beveiliging.
- Selecteer Vertrouwde zone en selecteer vervolgens Sites.
- Hierdoor kan de XSL werken.
U ziet een pagina Overzicht van aanvragen nadat u about:internet hebt toegevoegd aan de lijst met vertrouwde sites:
Een samenvatting van de mislukte aanvraag wordt bovenaan geregistreerd, met de tabel Fouten en waarschuwingen die gebeurtenissen identificeren die
WARNING
,ERROR
ofCRITICAL ERROR
in ernst, zijn. In dit voorbeeld wordt hetWARNING
ernstniveau veroorzaakt door ISAPI-BEPERKING. De afbeelding die u probeerde te laden, was %windir%\system32\inetsrv\asp.dll.Open het onbewerkte XML-bestand rechtstreeks met behulp van een teksteditor en bekijk de inhoud van de gebeurtenis.
Samenvatting
U hebt twee taken voltooid: het configureren van tracering van mislukte aanvragen om traceringen vast te leggen voor elke aanvraag die iis retourneert met een 404.2-statuscode en te controleren of IIS de tracering voor uw aanvraag heeft vastgelegd. U hebt ook gecontroleerd of het freb.xml logboekbestand geen andere aanvragen bevatte dan die met een retourcode 404.2. Toen u het logboekbestand met fouten hebt geraadpleegd, hebt u vastgesteld dat de oorzaak van de fout was dat de extensie voor die aanvraag is uitgeschakeld. U kunt andere niet-HTML-pagina's (zoals .gif- of .jpg-bestanden) proberen en er rekening mee houden dat het logboekbestand deze traceringen niet toevoegt. U kunt deze gebeurtenis ook eenvoudig wijzigen in 404 of de fout vastleggen als de aanvraag langer duurt dan 30 seconden door het veld timeTaken in te stellen in uw failureDefinitions.
Uw back-up herstellen
Nu u de taken in dit artikel hebt voltooid, kunt u de back-up van de configuratie herstellen. Voer de volgende opdracht uit met beheerdersrechten:
%windir%\system32\inetsrv\appcmd restore backup cleanInstall