Udostępnij za pomocą


Rozwiązywanie problemów z niepowodzenia żądań przy użyciu śledzenia w IIS 7

Dotyczy: Internet Information Services 7.0

Uwaga

Ten artykuł dotyczy usług IIS 7.0. W przypadku nowszych wersji zobacz Rozwiązywanie problemów z nieudanymi żądaniami za pomocą śledzenia w usługach IIS 8.5.

Śledzenie oparte na żądaniach jest dostępne zarówno na autonomicznych serwerach IIS, jak i na platformie Azure w aplikacjach internetowych. Umożliwia określenie, co dokładnie dzieje się z żądaniami i dlaczego, jeśli możesz odtworzyć doświadczany 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 funkcję Śledzenie Nieudanych Żą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 nieudanego żądania jest przeznaczone do buforowania zdarzeń śledzenia dla żądania i zapisania ich na dysk tylko wtedy, gdy żądanie zakończy się niepowodzeniem, zgodnie z dostarczoną definicją "niepowodzenia". Jeśli chcesz wiedzieć, dlaczego otrzymujesz komunikaty o błędach 404.2 lub dlaczego zaczynają się opóźnienia w przetwarzaniu żądań, użyj narzędzia do śledzenia nieudanych żądań.

Zadania przedstawione w tym artykule obejmują:

  • Włączanie modułu śledzenia nieudanych żądań.
  • Konfigurowanie semantyki plików dziennika dla śledzenia nieudanych żądań.
  • Określenie adresu URL, dla którego należy zachować ślady nieudanych żądań, w tym definicje niepowodzeń i obszary do monitorowania.
  • Generowanie warunku błędu i wyświetlanie śladu wynikowego.

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 http://localhost/, aby 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 Usługi sieci World Wide Web - Funkcje tworzenia aplikacji - ASP.NET)
  • Śledzenie (w obszarze Usług World Wide Web - Kondycja i Diagnostyka - Śledzenie)

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 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ę Start>Wszystkie programy>Akcesoria.

  2. Kliknij prawym przyciskiem myszy Wiersz polecenia, a następnie wybierz 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łącz ASP

Program ASP musi być wyłączony dla tego zadania. ASP jest wyłączone tylko jako przykład i na potrzeby zadań w tym artykule.

Aby wyłączyć ASP

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

  2. Kliknij dwukrotnie ISAPI i CGI Restrictions.

    Zrzut ekranu przedstawiający Menadżer I I S z wybranymi ograniczeniami I S A P I i C G I.

  3. Wybierz pozycję Active Server Pages (ASP). W okienku Akcje wybierz pozycję Odmów, aby wyłączyć ASP.

    Zrzut ekranu przedstawiający otwarte okienko Ograniczenia ISAPI i CGI oraz panel 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 protokolowanie żą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łącz śledzenie żądań niepomyślnych dla witryny i skonfiguruj katalog 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ń Witryny, a następnie wybierz pozycję Domyślna witryna Sieci Web.

  4. W okienku Akcje, w obszarze Konfiguruj, wybierz pozycję Śledzenie nieudanych żądań.

    Zrzut ekranu przedstawiający śledzenie nieudanych żądań w sekcji Konfiguruj.

  5. W oknie dialogowym Edytuj ustawienia śledzenia nieudanych żą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 Edycja ustawień śledzenia nieudanych żądań witryny z zaznaczoną opcją 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. Będziesz rozwiązywać problemy z błędem 404.2 zwracanym przez serwer IIS dla żądań dotyczących rozszerzeń, które nie są 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ń Witryny, a następnie wybierz pozycję Domyślna witryna Sieci Web.

  4. Kliknij dwukrotnie reguły śledzenia nieudanych żądań.

    Zrzut ekranu przedstawiający okienko Domyślnej strony głównej witryny sieci Web z wybranymi regułami śledzenia niepomyślnych żądań.

  5. Wybierz Zakończ.

  6. W okienku Akcje wybierz pozycję Dodaj.

  7. W kreatorze Dodaj regułę śledzenia nieudanych żądań, na stronie Wybierz zawartość do śledzenia, wybierz Cała zawartość (*). Wybierz Dalej.

    Zrzut ekranu przedstawiający kreator Dodawania reguły śledzenia nieudanych żądań z wybraną opcją cała treść.

  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 wybrany to 404,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. Pod Gadatliwość wybierz Szczegółowe.

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

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

    Zrzut ekranu przedstawiający panel reguł śledzenia nieudanych żądań. Serwer W W W jest wymieniony w obszarze skojarzeni 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ż IIS do przechwytywania dzienników śledzenia dla żądań http://localhost/*.asp, które kończą się niepowodzeniem o kodzie odpowiedzi HTTP 404.2. Teraz sprawdź, czy działa.

Krok 1. Wygeneruj błąd i plik dziennika błędów i niepowodzeń.

  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ą zatytułowaną Błąd serwera w domyślnej witrynie sieci Web. Podsumowanie błędu zawiera HTTP Błąd 404.2 Nie znaleziono.

Krok 2: Wyświetl plik dziennika nieudanego żądania

  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 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 w jednym egzemplarzu na katalog. Pomaga to w przeglądaniu plików dziennika błędnych żądań (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ć about:internet do listy zaufanych witryn, ponieważ skonfigurowano domyślne włączenie zwiększonych zabezpieczeń programu Internet Explorer. Jeśli tak, zobaczysz następujące elementy:

    Zrzut ekranu przedstawiający okno dialogowe konfiguracji zwiększonych zabezpieczeń dla programu Internet Explorer. Blokada Internetu.

  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, wraz z tabelą Błędy i ostrzeżenia, identyfikującą wszelkie zdarzenia, które są OSTRZEŻENIE, BŁĄD lub BŁĄD KRYTYCZNY w poważności. W tym przykładzie poziom zagrożenia 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 dla nieudanych żądań w celu przechwycenia śladów dla dowolnego żądania, które IIS zwracają z kodem stanu 404.2, i sprawdzono, że IIS przechwyciło ślad dla twojego żą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 wychwycić awarię, jeśli żądanie trwa dłużej niż 30 sekund, ustawiając pole timeTaken w definicjach awarii.

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