Rozwiązywanie problemów z żądaniami niepowodzenia przy użyciu śledzenia w usługach IIS 7
Dotyczy: Internet Information Services 7.0
Uwaga 16.
Ten artykuł dotyczy usług IIS 7.0. W przypadku nowszych wersji zobacz Rozwiązywanie problemów z żądaniami niepowodzenia 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 oraz umożliwia określenie, co dokładnie dzieje się z żądaniami i dlaczego, jeśli możesz odtworzyć problem, którego dotyczy problem. Problemy takie jak niska wydajność niektórych żądań lub błędy związane z uwierzytelnianiem w innych żądaniach lub błąd serwera 500 z platformy ASP lub ASP.NET często mogą być trudne do rozwiązania — chyba że przechwycono ślad problemu. W tym artykule omówiono śledzenie niepomyślnych żądań na serwerze IIS. Aby uzyskać informacje na temat wykonywania tej czynności za pomocą aplikacji internetowych platformy Azure, zobacz Rozwiązywanie problemów z aplikacją w usłudze aplikacja systemu Azure przy użyciu programu Visual Studio.
Śledzenie żądań, które zakończyło się niepowodzeniem, jest przeznaczone do buforowania zdarzeń śledzenia dla żądania i opróżniania ich tylko na dysk, jeśli żądanie zakończy się niepowodzeniem, w którym podaje się definicję "awarii". Jeśli chcesz wiedzieć, dlaczego otrzymujesz komunikaty o błędach 404.2 lub rozpocznij uruchamianie żądania, użyj śledzenia żądań, które zakończyło się niepowodzeniem.
Zadania przedstawione w tym artykule obejmują:
- Włączanie modułu Śledzenie żądań, które zakończyło się niepowodzeniem.
- Konfigurowanie semantyki dziennika śledzenia żądań niepomyślnych.
- Definiowanie adresu URL, dla którego mają być zachowywane ślady żądań, w tym definicje błędów i obszary do śledzenia.
- Generowanie warunku błędu i wyświetlanie wynikowego śledzenia.
Wymagania wstępne
Instalacja usług IIS
Przed wykonaniem zadań opisanych w tym artykule należy zainstalować usługi IIS 7 lub nowsze. Przejdź do witryny , aby http://localhost/
sprawdzić, czy usługi IIS są zainstalowane. Jeśli usługi IIS nie są zainstalowane, zobacz Instalowanie usług IIS w systemie Windows Server 2008 , aby uzyskać instrukcje dotyczące instalacji. Podczas instalowania usług IIS upewnij się, że zainstalowano również następujące funkcje:
- ASP.NET (w obszarze World Wide Web Services - Application Development Features - ASP.NET)
- Śledzenie (w obszarze Śledzenie kondycji i diagnostyki - usług - internetowych na całym świecie)
Zaloguj się jako administrator
Upewnij się, że konto używane do logowania jest kontem administratora lub znajduje się w grupie Administratorzy.
Uwaga 16.
Bycie w grupie Administratorzy domyślnie nie przyznaje Ci pełnych uprawnień użytkownika administratora. Musisz uruchomić aplikacje jako administrator, co można zrobić, klikając prawym przyciskiem myszy ikonę aplikacji i wybierając polecenie 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 akcesoria programów.>
Kliknij prawym przyciskiem myszy wiersz polecenia, a następnie wybierz polecenie 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 przywrócenia istniejącej zawartości) lub usuń ją.
Utwórz pusty plik i nadaj mu nazwę test.asp.
W wierszu polecenia przejdź do pliku test.asp w 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łączanie platformy ASP
Program ASP musi być wyłączony dla tego zadania. Platforma ASP jest wyłączona tylko jako przykład i na potrzeby zadań w tym artykule.
Aby wyłączyć platformę ASP
Otwórz Menedżera internetowych usług informacyjnych (IIS).
Kliknij dwukrotnie ograniczenia ISAPI i CGI.
Wybierz pozycję Aktywne strony serwera. W okienku Akcje wybierz pozycję Odmów , aby wyłączyć platformę ASP.
Włącz śledzenie żądań zakończonych niepowodzeniem
Po włączeniu śledzenia żądań, które zakończyło się niepowodzeniem, należy skonfigurować miejsce przechowywania plików dziennika. W tym zadaniu włączysz śledzenie żądań niepomyślnych dla domyślnej witryny sieci Web i określisz, gdzie umieścić pliki dziennika. Następnie skonfigurujesz błąd, dla którego mają być generowane dzienniki błędów.
Krok 1. Włączanie śledzenia żądań niepomyślnych dla lokacji i Konfigurowanie katalogu plików dziennika
Otwórz wiersz polecenia z uprawnieniami użytkownika administratora i przejdź do folderu %systemdrive%\windows\system32\inetsrv.
Uruchom polecenie
inetmgr
, aby otworzyć Menedżera usług IIS.W okienku Połączenia rozwiń nazwę maszyny, rozwiń węzeł Witryny, a następnie wybierz pozycję Domyślna witryna sieci Web.
W okienku Akcje w obszarze Konfiguruj wybierz pozycję Śledzenie żądań, które zakończyło się niepowodzeniem.
W oknie dialogowym Edytowanie nieudanych ustawień śledzenia żądań w witrynie sieci Web skonfiguruj następujące ustawienia:
- Zaznacz pole wyboru Włącz.
- Zachowaj wartości domyślne dla innych ustawień.
Wybierz przycisk OK.
Rejestrowanie śledzenia żądań nieudanych 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>
<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 problemy z programem 404.2 zwracanym przez usługi IIS dla żądań rozszerzeń, które nie zostały jeszcze włączone. Ułatwia to określenie, które określone rozszerzenia należy włączyć.
Otwórz wiersz polecenia z uprawnieniami użytkownika administratora i przejdź do folderu %systemdrive%\windows\system32\inetsrv.
Uruchom polecenie
inetmgr
, aby otworzyć Menedżera usług IIS.W okienku Połączenia rozwiń nazwę maszyny, rozwiń węzeł Witryny, a następnie wybierz pozycję Domyślna witryna sieci Web.
Kliknij dwukrotnie reguły śledzenia żądań, które zakończyły się niepowodzeniem.
Wybierz Zakończ.
W okienku Akcje wybierz pozycję Dodaj.
W kreatorze Dodawanie reguły śledzenia niepomyślnych żądań na stronie Określanie zawartości do śledzenia wybierz pozycję Cała zawartość (*). Wybierz Dalej.
Na stronie Definiowanie warunków śledzenia zaznacz pole wyboru Kod stanu i wprowadź wartość 404.2 jako kod stanu do śledzenia.
Wybierz 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 pozostałe pola wyboru.
Wygenerowany 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 — obszaru zabezpieczeń do śledzenia. Jednak ponieważ arkusz stylów FREB.xsl pomaga wyróżnić błędy i ostrzeżenia, nadal można użyć konfiguracji domyślnej do rejestrowania wszystkich zdarzeń we wszystkich obszarach i dostawcach. W obszarze Czasownik 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, które zakończyło się niepowodzeniem i wyświetlisz wynikowy dziennik śledzenia. Skonfigurowano już usługi IIS do przechwytywania dzienników śledzenia żądań http://localhost/*.asp
, które kończą się niepowodzeniem 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
Po wygenerowaniu żądania, które zakończyło się niepowodzeniem, 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ń, który zakończył się niepowodzeniem, zapisuje jeden plik na żądanie, które zakończyło się niepowodzeniem. Arkusz stylów freb.xsl jest również zapisywany, jeden na katalog. Pomaga to w wyświetlaniu wynikowych plików dziennika żądań niepowodzenia (takich jak fr000001.xml w tym przykładzie).
Kliknij prawym przyciskiem myszy plik dziennika błędu 404.2 i wybierz polecenie Otwórz za pomocą>programu Internet Explorer. Jeśli po raz pierwszy otwierasz plik śledzenia nieudanych żądań, musisz dodać wartość about:internet do listy zaufanych witryn, ponieważ konfiguracja zwiększonych 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 XSL. Po dodaniu funkcji about:internet do listy zaufanych witryn zobaczysz następujące informacje:
Podsumowanie żądania, które zakończyło się niepowodzeniem, jest rejestrowane u góry z tabelą Błędy i ostrzeżenia identyfikujące wszelkie zdarzenia, które są 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 pierwotny 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 dowolnego żądania, które usługi IIS zwracają je przy użyciu kodu stanu 404.2, i sprawdzono, że usługi IIS przechwyciły ślad żądania. Sprawdzono również, że plik dziennika freb.xml nie zawiera żadnych innych żądań dotyczących złożonych żądań, ponieważ żądania nie miały kodu zwracanego 404.2. Po zapoznaniu się z plikiem dziennika błędów ustaliliśmy, że przyczyną błędu było wyłączenie rozszerzenia dla tego żądania. Możesz wypróbować inne strony inne niż HTML (na przykład pliki .gif lub .jpg) i pamiętać, że plik dziennika nie dodaje tych śladów. Możesz 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 błędzieDefinitions.
Przywracanie kopii zapasowej
Po ukończeniu 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