Rozwiązywanie problemów z żądaniami zakończonymi niepowodzeniem przy użyciu śledzenia w usługach IIS 7
Dotyczy: Internet Information Services 7.0
Uwaga
Ten artykuł dotyczy usług IIS 7.0. Aby uzyskać nowsze wersje, zobacz Rozwiązywanie problemów z żądaniami zakończonymi niepowodzeniem przy użyciu śledzenia w usługach IIS 8.5.
Śledzenie oparte na żądaniach jest dostępne zarówno na autonomicznych serwerach usług IIS, jak i w aplikacjach internetowych platformy Azure i umożliwia określenie, co dokładnie dzieje się z twoimi żądaniami i dlaczego, jeśli można odtworzyć problem, którego dotyczy problem. Problemy, takie jak niska wydajność niektórych żądań, niepowodzenia związane z uwierzytelnianiem w przypadku innych żądań 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 temat wykonywania tej czynności za pomocą aplikacji internetowych platformy 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, gdzie podasz definicję "awarii". Jeśli chcesz wiedzieć, dlaczego otrzymujesz komunikaty o błędach 404.2 lub żądanie rozpoczęcia zawieszania się, użyj śledzenia żądań zakończonych niepowodzeniem.
Zadania przedstawione 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 należy zainstalować usługi IIS 7 lub nowsze. Przejdź do pozycji , aby http://localhost/
sprawdzić, czy są zainstalowane usługi IIS. Jeśli usługi IIS nie są zainstalowane, zobacz Instalowanie usług IIS w systemie Windows Server 2008 , aby uzyskać instrukcje instalacji. Podczas instalowania usług IIS upewnij się, że zainstalowano również następujące funkcje:
- ASP.NET (w obszarzeFunkcje - tworzenia aplikacji usług World Wide Web Services - ASP.NET)
- Śledzenie (w obszarze World Wide Web Services - Health and Diagnostics - Tracing)
Zaloguj się jako administrator
Upewnij się, że konto używane do logowania jest kontem administratora lub znajduje się w grupie Administratorzy.
Uwaga
Bycie w grupie Administratorzy domyślnie nie daje ci pełnych praw użytkownika administratora. Musisz uruchomić aplikacje jako administrator, co można zrobić, klikając prawym przyciskiem myszy ikonę aplikacji i wybierając pozycję Uruchom jako administrator.
Tworzenie kopii zapasowej
Przed wykonaniem zadań w poniższych sekcjach należy utworzyć kopię zapasową konfiguracji.
Aby utworzyć kopię zapasową konfiguracji, wykonaj następujące kroki:
Wybierz pozycję Uruchom>wszystkie programy>Akcesoria.
Kliknij prawym przyciskiem myszy wiersz polecenia, a następnie wybierz pozycję Uruchom jako administrator.
W wierszu polecenia uruchom następujące polecenie:
%windir%\system32\inetsrv\appcmd add backup cleanInstall
Tworzenie przykładowej zawartości
Przejdź do
%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
Otwórz Menedżera usług Internet Information Services (IIS).
Kliknij dwukrotnie ograniczenia isapi i CGI.
Wybierz pozycję Aktywne strony serwera. W okienku Akcje wybierz pozycję Odmów , aby wyłączyć usługę ASP.
Włączanie śledzenia żądań zakończonych niepowodzeniem
Po włączeniu śledzenia żądań zakończonych niepowodzeniem należy skonfigurować miejsce, w którym będą znajdować się pliki dziennika. W tym zadaniu włączysz śledzenie żądań zakończonych niepowodzeniem dla domyślnej witryny sieci Web i określisz, gdzie umieścić pliki dziennika. Następnie skonfigurujesz błąd, dla którego mają zostać wygenerowane dzienniki błędów.
Krok 1. Włączanie śledzenia żądań zakończonych niepowodzeniem dla witryny i konfigurowanie katalogu 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 w witrynie 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 .config %windir%\system32\inetsrv\config\applicationHost , aby upewnić się, że konfiguracja wygląda następująco:
<system.applicationHost>
<sites>
<!-- site & app defaults -->
<site name="Default Web Site" id="1">
<!-- other site configuration -->
<traceFailedRequestsLogging enabled="true" />
</site>
</sites>
</system.applicationHost>
Krok 2. Konfigurowanie definicji błędów
W tym kroku skonfigurujesz definicje błędów dla adresu URL, w tym obszary do śledzenia. Rozwiążesz problem z kodem 404.2 zwracanym przez usługi IIS dla wszystkich żądań do rozszerzeń, które nie zostały jeszcze włączone. Pomaga to określić, które konkretne rozszerzenia należy włączyć.
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.
Wybierz Zakończ.
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ść (*). 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 . 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.
Wybierz Zakończ. Powinna zostać wyświetlona następująca definicja domyślnej witryny sieci Web:
Menedżer usług IIS zapisuje konfigurację w %windir%\system32\inetsrv\config\applicationHost.config
pliku przy użyciu tagu <location>
. Konfiguracja powinna wyglądać następująco:
<location path="Default Web Site">
<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>
</location>
Testowanie i wyświetlanie pliku dziennika żądania niepowodzenia
W tym zadaniu wygenerujesz żądanie zakończone niepowodzeniem i wyświetlisz wynikowy dziennik ś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ź następujący adres:
http://localhost/test.asp
.Zostanie wyświetlony błąd "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 wiersz polecenia z uprawnieniami użytkownika administratora i przejdź do folderu %systemdrive%\inetpub\logs\FailedReqLogFiles\W3SVC1.
Uruchom polecenie start , aby uruchomić okno programu Internet Explorer z katalogu.
Zwróć uwagę na kilka rzeczy: 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 wybierz pozycję Dodaj... , aby dodać pozycję about:internet do listy zaufanych witryn. Umożliwia to działanie protokołu XSL. Po dodaniu elementu about:internet do listy zaufanych witryn zostaną wyświetlone następujące informacje:
Podsumowanie żądania zakończonej niepowodzeniem jest rejestrowane u góry, a w tabeli Errors & Warnings (Błędy & ostrzeżenia ) są rejestrowane wszystkie zdarzenia, które mają wartość OSTRZEŻENIE, BŁĄD lub BŁĄD KRYTYCZNY w ważności. W tym przykładzie poziom ważności OSTRZEŻENIE 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 każdego zdarzenia.
Podsumowanie
Wykonano dwa zadania: skonfigurowano śledzenie żądań zakończonych niepowodzeniem w celu przechwycenia śladów dla każdego żądania, które usługi IIS zwróciły z kodem stanu 404.2, i zweryfikowano, że usługi IIS przechwyciły ślad żądania. Sprawdzono również, że plik dziennika freb.xml nie zawiera żadnych innych żądań dotyczących żądań, które zostały wykonane, ponieważ żądania nie miały kodu zwrotnego 404.2. Podczas konsultacji 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 pliki .gif lub .jpg) i zauważyć, że plik dziennika NIE dodaje tych śladów. Można również łatwo zmienić tę wartość na 404 lub przechwycić błąd, jeśli żądanie trwa dłużej niż 30 sekund, ustawiając pole timeTaken w parametrze 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