Udostępnij za pośrednictwem


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:

  1. Wybierz pozycję Uruchom>wszystkie programy>Akcesoria.

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

    Zrzut ekranu przedstawiający menu kontekstowe wiersza polecenia z wybraną opcją 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, gdy chcesz przywrócić istniejącą zawartość) lub usuń ją.

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

  4. W wierszu polecenia przejdź do pliku test.aspw 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łą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

  1. Otwórz Menedżera usług Internet Information Services (IIS).

  2. Kliknij dwukrotnie ograniczenia isapi i CGI.

    Zrzut ekranu przedstawiający wybraną opcję I I S Manager z wybranymi ograniczeniami I S A P I i C G I.

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

    Zrzut ekranu przedstawiający otwarte okienko Ograniczenia i akcje I S A P I i C G I.

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

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

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

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

  4. W okienku Akcje w obszarze Konfigurowanie wybierz pozycję Śledzenie żądań zakończonych niepowodzeniem.

    Zrzut ekranu przedstawiający śledzenie żądań zakończonych niepowodzeniem w obszarze Konfigurowanie.

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

    Zrzut ekranu przedstawiający okno dialogowe Edytowanie ustawień śledzenia żądań zakończonych niepowodzeniem witryny sieci Web z wybraną opcją Włącz.

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

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

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

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

  4. Kliknij dwukrotnie reguły śledzenia żądań zakończonych niepowodzeniem.

    Zrzut ekranu przedstawiający domyślne okienko Strona główna witryny sieci Web i wybrane są reguły śledzenia żądań zakończonych niepowodzeniem.

  5. Wybierz Zakończ.

  6. W okienku Akcje wybierz pozycję Dodaj.

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

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

  8. Na stronie Definiowanie warunków śledzenia zaznacz pole wyboru Kody stanu i wprowadź 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 pozycję 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 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.

    Zrzut ekranu przedstawiający stronę Wybieranie dostawców śledzenia. Serwer W W W jest wybierany w obszarze Dostawcy, a w obszarze Zabezpieczenia jest zaznaczone 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 żądań zakończonych niepowodzeniem. Serwer W W W Znajduje się na liście skojarzonych dostawców.

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

  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 komunikat H T T P Error 404 dot 2 Not Found (Nie znaleziono błędu H T T P 404 dot 2).

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

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

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

    Zrzut ekranu przedstawiający przechodzenie do ścieżki W 3 S V C 1 w programie Internet Explorer. Wymienione są dwa pliki, 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ń 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).

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

    Zrzut ekranu przedstawiający okno dialogowe konfiguracji zwiększonych zabezpieczeń programu Internet Explorer. Informacje o internecie dwukropka są blokowane.

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

    Zrzut ekranu przedstawiający program Internet Explorer. Wybrano kartę Podsumowanie żądania i są wyświetlane dwa ostrzeżenia.

    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.

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