Rozwiązywanie problemów z żądaniami zakończonymi niepowodzeniem przy użyciu śledzenia w usługach IIS 8.5
Dotyczy: Internet Information Services 8.5
Wprowadzenie
Śledzenie oparte na żądaniach jest dostępne zarówno na autonomicznych serwerach usług IIS, jak i w witrynach sieci Web platformy Microsoft Azure (WAWS). Jeśli możesz odtworzyć występujący problem, śledzenie oparte na żądaniach umożliwia określenie, co dokładnie dzieje się z żądaniami i dlaczego tak się dzieje. Problemy, takie jak niska wydajność niektórych żądań, błędy związane z uwierzytelnianiem w innych żądaniach lub błąd serwera 500 z usługi ASP lub ASP.NET często mogą być trudne do rozwiązania, chyba że przechwycono ślad problemu, gdy wystąpi. W tym artykule omówiono śledzenie żądań zakończonych niepowodzeniem na serwerze usług IIS. Aby uzyskać informacje na ten temat w witrynach sieci Web platformy Microsoft Azure, zobacz Rozwiązywanie problemów z aplikacją w Azure App Service przy użyciu programu Visual Studio.
Śledzenie żądań zakończonych niepowodzeniem jest przeznaczone do buforowania zdarzeń śledzenia dla żądania i opróżniania ich na dysku tylko wtedy, gdy żądanie zakończy się niepowodzeniem, w którym podasz definicję błędu. Jeśli chcesz wiedzieć, dlaczego żądania zwracają określony kod stanu HTTP, na przykład 401 lub 404, lub jeśli żądanie zajmuje trochę czasu, aby przetworzyć lub nie odpowiada, możesz użyć śledzenia żądania zakończonego niepowodzeniem.
Zadania opisane w tym artykule obejmują:
- Włączanie modułu Śledzenia żądań zakończonych niepowodzeniem.
- Konfigurowanie semantyki pliku dziennika zakończonej niepowodzeniem śledzenia żądań.
- Definiowanie adresu URL, dla którego mają być przechowywane ślady żądań zakończonych niepowodzeniem, w tym definicje błędów i obszary do śledzenia.
- Generowanie warunku niepowodzenia i wyświetlanie wynikowego śledzenia.
Wymagania wstępne
Instalowanie usług IIS
Przed wykonaniem zadań opisanych w tym artykule zainstaluj usługi IIS 8.5. Przejdź do http://localhost/
strony i sprawdź, czy jest wyświetlany ekran powitalny usług Internet Information Services. Jeśli usługi IIS nie są zainstalowane, zobacz Instalowanie usług IIS 8.5 w Windows Server 2012 R2, aby uzyskać instrukcje instalacji. Podczas instalowania usług IIS upewnij się, że zainstalowano również następujące funkcje:
- ASP.NET 3.5 (w obszarze Web Server (IIS)/Web Server/Application Development Features/ASP.NET 3.5)
- ASP.NET 4.5 (w obszarze Web Server (IIS)/Web Server/Application Development Features/ASP.NET 4.5)
- Śledzenie (w obszarze Serwer sieci Web (IIS)/Kondycja i diagnostyka serwera /sieci Web— śledzenie)
Zaloguj się jako administrator
Upewnij się, że konto używane do logowania jest kontem administratora lub znajduje się w grupie administratorów.
Uwaga
Bycie w grupie administratorów domyślnie nie daje ci pełnych praw użytkownika administratora. Aplikacje należy uruchomić jako administrator, klikając prawym przyciskiem myszy ikonę aplikacji i wybierając pozycję Uruchom jako administrator.
Tworzenie kopii zapasowej
Przed wykonaniem następujących zadań utwórz kopię zapasową plików konfiguracji:
Wybierz klucz logo systemu Windows i klucz X jednocześnie, wybierz pozycję Wiersz polecenia (Administracja), a następnie wybierz pozycję Tak.
W wierszu polecenia uruchom następujące polecenie:
%windir%\system32\inetsrv\appcmd add backup cleanInstall
To polecenie tworzy folder cleanInstall zawierający pliki konfiguracji kopii zapasowej w folderze %windir%\system32\inetsrv\backup.
Tworzenie przykładowej zawartości
Przejdź do folderu %systemdrive%\inetpub\wwwroot.
Przenieś zawartość do bezpiecznej lokalizacji (w przypadku, gdy chcesz przywrócić istniejącą zawartość) lub usuń ją.
Utwórz pusty plik i nadaj mu nazwę test.asp.
W wierszu polecenia przejdź do pliku test.aspw folderze \inetpub\wwwroot.
W pliku test.asp wklej następującą zawartość:
<h2>Failed Request Tracing Lab</h2><br> <br>Today's date is <% response.write(Date()) %>
Wyłącz usługę ASP
Dla tego zadania należy wyłączyć protokół ASP. Usługa ASP jest wyłączona tylko jako przykład i na potrzeby zadań w tym artykule.
Aby wyłączyć usługę ASP, wykonaj następujące kroki:
Otwórz Menedżera usług IIS i wybierz serwer.
Kliknij dwukrotnie ograniczenia isapi i CGI.
W okienku Ograniczenia ISAPI i CGI wybierz pozycję Aktywne strony serwera. W okienku Akcje wybierz pozycję Odmów , aby wyłączyć usługę ASP. Aktywne strony serwera będą wyświetlane jako Niedozwolone.
Włączanie śledzenia żądań zakończonych niepowodzeniem
Po włączeniu śledzenia żądań zakończonych niepowodzeniem należy skonfigurować ścieżkę plików dziennika. W tej sekcji włączysz śledzenie żądań zakończonych niepowodzeniem dla domyślnej witryny sieci Web i określisz miejsce przechowywania plików dziennika, a następnie skonfigurujesz błąd, dla którego mają zostać wygenerowane dzienniki błędów.
Krok 1. Włącz śledzenie żądań zakończonych niepowodzeniem dla witryny i skonfiguruj katalog plików dziennika
Otwórz wiersz polecenia z uprawnieniami użytkownika administratora i przejdź do pozycji %systemdrive%\windows\system32\inetsrv.
Uruchom polecenie
inetmgr
, aby otworzyć Menedżera usług IIS.W okienku Connections rozwiń nazwę maszyny, rozwiń węzeł Witryny, a następnie wybierz pozycję Domyślna witryna sieci Web.
W okienku Akcje w obszarze Konfigurowanie wybierz pozycję Śledzenie żądań zakończonych niepowodzeniem....
W oknie dialogowym Edytowanie ustawień śledzenia żądań zakończonych niepowodzeniem witryny sieci Web skonfiguruj następujące elementy:
- Zaznacz pole wyboru Włącz .
- Zachowaj wartości domyślne dla innych ustawień.
Wybierz przycisk OK.
Rejestrowanie śledzenia żądań zakończonych niepowodzeniem jest teraz włączone dla domyślnej witryny sieci Web. Sprawdź plik %windir%\system32\inetsrv\config\applicationHost.config , aby upewnić się, że konfiguracja wygląda następująco:
<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>
Krok 2. Konfigurowanie definicji błędów
W tym kroku skonfiguruj definicje błędów dla adresu URL, w tym obszary do śledzenia. Rozwiążesz problem z kodem stanu 404.2 zwracanym przez usługi IIS dla wszystkich żądań do rozszerzeń, które nie zostały jeszcze włączone. Pomaga określić, które konkretne rozszerzenia należy włączyć. Aby uzyskać więcej informacji, zobacz Kody stanu HTTP w usługach IIS.
Otwórz wiersz polecenia z uprawnieniami użytkownika administratora i przejdź do pozycji %systemdrive%\windows\system32\inetsrv.
Uruchom polecenie
inetmgr
, aby otworzyć Menedżera usług IIS.W okienku Connections rozwiń nazwę maszyny, rozwiń węzeł Witryny, a następnie wybierz pozycję Domyślna witryna sieci Web.
Kliknij dwukrotnie reguły śledzenia żądań zakończonych niepowodzeniem.
W okienku Akcje wybierz pozycję Dodaj....
W kreatorze Dodawanie reguły śledzenia żądań zakończonych niepowodzeniem na stronie Określanie zawartości do śledzenia wybierz pozycję Cała zawartość (*), a następnie wybierz pozycję Dalej.
Na stronie Definiowanie warunków śledzenia zaznacz pole wyboru Kody stanu i wprowadź 404.2 jako kod stanu do śledzenia.
Wybierz pozycję Dalej.
Na stronie Wybieranie dostawców śledzenia w obszarze Dostawcy zaznacz pole wyboru Serwer WWW i wyczyść wszystkie inne pola wyboru. W obszarze Obszary zaznacz pole wyboru Zabezpieczenia i wyczyść wszystkie inne pola wyboru.
Generowany problem powoduje zgłoszenie zdarzenia śledzenia błędu zabezpieczeń. Ogólnie rzecz biorąc, problemy z uwierzytelnianiem i autoryzacją (w tym problemy z listą ograniczeń isapi) można zdiagnozować przy użyciu konfiguracji serwera WWW — obszar zabezpieczeń do śledzenia. Jednak ponieważ arkusz stylów FREB.xsl pomaga wyróżnić błędy i ostrzeżenia, nadal możesz użyć domyślnej konfiguracji do rejestrowania wszystkich zdarzeń we wszystkich obszarach i dostawcach.
W obszarze Pełność wybierz pozycję Pełne.
Uwaga
Podczas instalowania usługi roli śledzenia usługi IIS domyślnie instaluje serwer WWW, asp i isapi rozszerzenia śledzenia dostawców. Jeśli zainstalujesz ASP.NET wersji 2.0 lub nowszej, usługi IIS automatycznie dodają dostawcę śledzenia ASPNET. Dodatkowi dostawcy są instalowani przez pakiet instalatora routingu żądań aplikacji (ARR), który instaluje również moduł ponownego zapisywania adresów URL, zarządzanie farmą sieci Web i zewnętrzną pamięć podręczną. Możesz dodać więcej dostawców śledzenia przy użyciu
<add>
elementu w elemencie<traceProviderDefinitions>
.Wybierz Zakończ.
Zostanie wyświetlona następująca definicja domyślnej witryny sieci Web:
Menedżer usług IIS zapisuje konfigurację w
%systemdrive%\inetpub\wwwroot\web.config
pliku przy użyciu tagu<location>
. Konfiguracja powinna ponownie utworzyć następujące elementy:<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>
Testowanie i wyświetlanie pliku dziennika żądania niepowodzenia
Ta sekcja ułatwia wygenerowanie żądania zakończonej niepowodzeniem i wyświetlenie wynikowego dziennika śledzenia. Skonfigurowano już usługi IIS do przechwytywania dzienników śledzenia dla http://localhost/*.asp
żądań, które nie powiodły się z kodem odpowiedzi HTTP 404.2. Teraz sprawdź, czy działa.
Krok 1. Generowanie błędu i pliku dziennika żądania niepowodzenia
Otwórz nowe okno programu Internet Explorer.
Wprowadź klawisz
http://localhost/test.asp
i naciśnij klawisz ENTER. Zostanie wyświetlony komunikat o błędzie "Błąd HTTP 404.2 — nie znaleziono".
Krok 2. Wyświetlanie pliku dziennika żądania niepowodzenia
Teraz, gdy żądanie zakończone niepowodzeniem zostało wygenerowane, otwórz Eksploratora Windows i przejdź do folderu %systemdrive%\inetpub\logs\FailedReqLogFiles\W3SVC1.
Uwaga
Gdy usługi IIS zapisują plik dziennika żądań zakończonych niepowodzeniem, zapisuje jeden plik na żądanie zakończone niepowodzeniem. Zapisywany jest również arkusz stylów freb.xsl , jeden na katalog. Pomaga to podczas wyświetlania plików dziennika żądania niepowodzenia wynikowego (takich jak fr000001.xml w tym przykładzie).
Kliknij prawym przyciskiem myszy plik dziennika dla błędu 404.2, a następnie wybierz pozycję Otwórz za pomocą programu ->Internet Explorer. Jeśli po raz pierwszy otwierasz plik Śledzenia żądań zakończonych niepowodzeniem, musisz dodać plik about:internet do listy zaufanych witryn, ponieważ konfiguracja rozszerzonych zabezpieczeń programu Internet Explorer jest domyślnie włączona. Jeśli tak, zobaczysz następujące elementy:
W oknie dialogowym programu Internet Explorer dodaj pozycję about:internet do listy zaufanych witryn, wykonując następujące kroki:
- Wybierz menu Narzędzia , a następnie wybierz pozycję Opcje internetowe.
- Wybierz kartę Zabezpieczenia .
- Wybierz pozycję Zaufana strefa, a następnie wybierz pozycję Witryny.
- Umożliwia to działanie protokołu XSL.
Po dodaniu elementu about:internet do listy zaufanych witryn zostanie wyświetlona strona Podsumowanie żądania:
Podsumowanie żądania zakończonej niepowodzeniem jest rejestrowane u góry, a w tabeli Errors & Warnings (Błędy & ostrzeżenia) są rejestrowane wszystkie zdarzenia
WARNING
o ważności ,ERROR
lub .CRITICAL ERROR
W tym przykładzieWARNING
poziom ważności jest spowodowany ograniczeniem isapi. Obraz, który próbowano załadować, to %windir%\system32\inetsrv\asp.dll.Otwórz nieprzetworzony plik XML bezpośrednio przy użyciu edytora tekstów i przyjrzyj się zawartości zdarzenia.
Podsumowanie
Wykonano dwa zadania: skonfigurowanie śledzenia żądań zakończonych niepowodzeniem w celu przechwycenia śladów dla każdego żądania zwracanego przez usługi IIS z kodem stanu 404.2 oraz sprawdzenie, czy usługi IIS przechwyciły ślad żądania. Sprawdzono również, że plik dziennika freb.xml nie zawiera żadnych żądań innych niż te z kodem zwrotnym 404.2. Po zapoznaniu się z plikiem dziennika błędów ustalono, że przyczyną błędu było wyłączenie rozszerzenia dla tego żądania. Możesz wypróbować inne strony inne niż HTML (takie jak .gif lub pliki .jpg) i pamiętać, że plik dziennika nie dodaje tych śladów. Można również łatwo zmienić to zdarzenie na 404 lub przechwycić błąd, jeśli żądanie trwa dłużej niż 30 sekund, ustawiając pole timeTaken w elemencie failureDefinitions.
Przywracanie kopii zapasowej
Po wykonaniu zadań w tym artykule możesz przywrócić kopię zapasową konfiguracji. Uruchom następujące polecenie z uprawnieniami użytkownika administratora:
%windir%\system32\inetsrv\appcmd restore backup cleanInstall
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla