Udostępnij za pośrednictwem


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:

  1. Wybierz pozycję Uruchom>wszystkie akcesoria programów.>

  2. Kliknij prawym przyciskiem myszy wiersz polecenia, a następnie wybierz polecenie Uruchom jako administrator.

    Zrzut ekranu przedstawiający menu kontekstowe wiersza polecenia z wybraną pozycją Uruchom jako administrator.

  3. W wierszu polecenia uruchom następujące polecenie:

    %windir%\system32\inetsrv\appcmd add backup cleanInstall
    

Tworzenie przykładowej zawartości

  1. Przejdź do %systemdrive%\inetpub\wwwroot.

  2. Przenieś zawartość do bezpiecznej lokalizacji (w przypadku przywrócenia istniejącej zawartości) lub usuń ją.

  3. Utwórz pusty plik i nadaj mu nazwę test.asp.

  4. W wierszu polecenia przejdź do pliku test.asp w folderze \inetpub\wwwroot.

  5. 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

  1. Otwórz Menedżera internetowych usług informacyjnych (IIS).

  2. Kliknij dwukrotnie ograniczenia ISAPI i CGI.

    Zrzut ekranu przedstawiający wybrane ograniczenia I I I S Manager z I A P I i C G I.

  3. Wybierz pozycję Aktywne strony serwera. W okienku Akcje wybierz pozycję Odmów , aby wyłączyć platformę ASP.

    Zrzut ekranu przedstawiający otwarte okienko Ograniczenia I I i C G I i Akcje.

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

  1. Otwórz wiersz polecenia z uprawnieniami użytkownika administratora i przejdź do folderu %systemdrive%\windows\system32\inetsrv.

  2. Uruchom polecenie inetmgr , aby otworzyć Menedżera usług IIS.

  3. W okienku Połączenia rozwiń nazwę maszyny, rozwiń węzeł Witryny, a następnie wybierz pozycję Domyślna witryna sieci Web.

  4. W okienku Akcje w obszarze Konfiguruj wybierz pozycję Śledzenie żądań, które zakończyło się niepowodzeniem.

    Zrzut ekranu przedstawiający śledzenie żądań niepomyślnych w obszarze Konfiguruj.

  5. 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ń.

    Zrzut ekranu przedstawiający okno dialogowe Edytowanie ustawień śledzenia niepomyślnych żądań witryny sieci Web z wybraną pozycją Włącz.

  6. 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ć.

  1. Otwórz wiersz polecenia z uprawnieniami użytkownika administratora i przejdź do folderu %systemdrive%\windows\system32\inetsrv.

  2. Uruchom polecenie inetmgr , aby otworzyć Menedżera usług IIS.

  3. W okienku Połączenia rozwiń nazwę maszyny, rozwiń węzeł Witryny, a następnie wybierz pozycję Domyślna witryna sieci Web.

  4. Kliknij dwukrotnie reguły śledzenia żądań, które zakończyły się niepowodzeniem.

    Zrzut ekranu przedstawiający okienko Domyślna strona główna witryny sieci Web i wybrano reguły śledzenia niepomyślnych żądań.

  5. Wybierz Zakończ.

  6. W okienku Akcje wybierz pozycję Dodaj.

  7. W kreatorze Dodawanie reguły śledzenia niepomyślnych żądań na stronie Określanie zawartości do śledzenia wybierz pozycję Cała zawartość (*). Wybierz Dalej.

    Zrzut ekranu przedstawiający kreatora Dodawanie reguły śledzenia niepomyślnych żądań z wybraną pozycją Cała zawartość.

  8. Na stronie Definiowanie warunków śledzenia zaznacz pole wyboru Kod stanu i wprowadź wartość 404.2 jako kod stanu do śledzenia.

    Zrzut ekranu przedstawiający stronę Definiowanie warunków śledzenia. Kod stanu jest wybierany z 404 kropką 2 w polu Kod stanu.

  9. Wybierz Dalej.

  10. 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.

    Zrzut ekranu przedstawiający stronę Wybierz dostawców śledzenia. W W Server jest wybrany w obszarze Dostawcy, a zabezpieczenia są zaznaczone w obszarze Pełne.

  11. Wybierz Zakończ. Powinna zostać wyświetlona następująca definicja domyślnej witryny sieci Web:

    Zrzut ekranu przedstawiający okienko Reguły śledzenia niepomyślnych żądań. Serwer W W W jest wymieniony w obszarze Skojarzone dostawcy.

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

  1. Otwórz nowe okno programu Internet Explorer.

  2. Wprowadź następujący adres: http://localhost/test.asp.

  3. Zostanie wyświetlony błąd "Błąd HTTP 404.2 — nie znaleziono".

    Zrzut ekranu przedstawiający stronę internetową o nazwie Błąd serwera w domyślnej witrynie sieci Web aplikacji. W obszarze Podsumowanie błędu jest wyświetlany błąd H T T P 404 kropka 2 Nie znaleziono.

Krok 2. Wyświetlanie pliku dziennika żądania niepowodzenia

  1. 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.

  2. Uruchom polecenie start , aby uruchomić okno programu Internet Explorer z katalogu.

    Zrzut ekranu przedstawiający przejście do ścieżki W 3 S V C 1 w programie Internet Explorer. Dwa pliki są wymienione, freb i f r 0 0 0 0 0 0 1.

  3. 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).

  4. 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:

    Zrzut ekranu przedstawiający okno dialogowe konfiguracji zwiększonych zabezpieczeń programu Internet Explorer. Około dwukropka Internet jest zablokowany.

  5. 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:

    Zrzut ekranu przedstawiający program Internet Explorer. Wybrano kartę Podsumowanie żądania, a na liście są wyświetlane dwa ostrzeżenia.

    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.

  6. 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