Udostępnij za pośrednictwem


Rozwiązywanie problemów z żądaniami niepowodzenia przy użyciu śledzenia w usługach IIS 8.5

Dotyczy: Internet Information Services 8.5

Wprowadzenie

Śledzenie oparte na żądaniach jest dostępne zarówno w autonomicznych serwerach USŁUG IIS, jak i w witrynach internetowych platformy Microsoft Azure (WAWS). Jeśli możesz odtworzyć problem, którego doświadczasz, śledzenie oparte na żądaniach umożliwia określenie, co dokładnie dzieje się z żądaniami i dlaczego się dzieje. Problemy, takie jak niska wydajność niektórych żądań, 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ą witryn sieci Web platformy Microsoft 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, ma na celu buforowanie zdarzeń śledzenia dla żądania i opróżnianie ich tylko na dysk, jeśli żądanie zakończy się niepowodzeniem, w którym podajesz definicję błędu. Jeśli chcesz wiedzieć, dlaczego żądania zwracają określony kod stanu HTTP, na przykład 401 lub 404, lub jeśli żądanie trwa trochę czasu, aby przetworzyć lub nie odpowiada, możesz użyć śledzenia żądań niepomyślnych.

Zadania opisane 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

Zainstaluj usługi IIS 8.5 przed wykonaniem zadań opisanych w tym artykule. Przejdź do http://localhost/ strony i sprawdź, czy jest wyświetlany ekran powitalny usług Internet Information Services. Jeśli usługi IIS nie są zainstalowane, zobacz Instalowanie usług IIS 8.5 w systemie Windows Server 2012 R2 , aby uzyskać instrukcje instalacji. Podczas instalowania usług IIS upewnij się, że zainstalowano również następujące funkcje:

  • ASP.NET 3.5 (w obszarze Serwer sieci Web (IIS)/Funkcje/tworzenia aplikacji serwera/sieci Web ASP.NET 3.5)
  • ASP.NET 4.5 (w obszarze Web Server (IIS)/Web Server/Application Development Features/ASP.NET 4.5)
  • Śledzenie (w obszarze Serwer sieci Web (IIS)/Kondycja i diagnostyka serwera/sieci Web — śledzenie)

Zaloguj się jako administrator

Upewnij się, że konto używane do logowania jest kontem administratora lub znajduje się w grupie administratorów.

Uwaga 16.

Bycie w grupie administratorów domyślnie nie przyznaje ci pełnych uprawnień użytkownika administratora. Musisz uruchamiać aplikacje jako administrator, klikając prawym przyciskiem myszy ikonę aplikacji i wybierając polecenie Uruchom jako administrator.

Tworzenie kopii zapasowej

Utwórz kopię zapasową plików konfiguracji przed wykonaniem następujących zadań:

  1. Wybierz jednocześnie klucz logo systemu Windows i X , wybierz pozycję Wiersz polecenia (administrator), a następnie wybierz pozycję Tak.

    Zrzut ekranu przedstawiający administratora wiersza polecenia na pasku zadań systemu Windows.

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

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

    To polecenie tworzy folder cleanInstall zawierający pliki konfiguracji kopii zapasowej w folderze %windir%\system32\inetsrv\backup.

Tworzenie przykładowej zawartości

  1. Przejdź do folderu %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, wykonaj następujące kroki:

  1. Otwórz Menedżera usług IIS i wybierz serwer.

  2. Kliknij dwukrotnie ograniczenia ISAPI i CGI.

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

  3. W okienku Ograniczenia ISAPI i CGI wybierz pozycję Aktywne strony serwera. W okienku Akcje wybierz pozycję Odmów , aby wyłączyć platformę ASP. Aktywne strony serwera będą wyświetlane jako Niedozwolone.

    Zrzut ekranu przedstawiający okienko Ograniczenia I P I I I i C G z wyświetloną wybraną pozycją Aktywne strony serwera. Opcja Odmów jest zaznaczona w okienku Akcje.

Włącz śledzenie żądań zakończonych niepowodzeniem

Po włączeniu śledzenia żądań, które zakończyło się niepowodzeniem, należy skonfigurować ścieżkę plików dziennika. W tej sekcji włączysz śledzenie żądań niepomyślnych dla domyślnej witryny sieci Web i określisz, gdzie mają być przechowywane pliki dziennika, a 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ń zakończone niepowodzeniem....

    Zrzut ekranu przedstawiający okienko Akcje z wyróżnioną opcją Śledzenie niepomyślnych żądań na karcie Konfigurowanie.

  5. W oknie dialogowym Edytowanie ustawień śledzenia żądań niepowodzenia witryny 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 polem wypełniania poleceń i zaznaczonym polem wyboru 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>
       <!-- other system configuration --> 
       <sites> 
          <site name="Default Web Site" id="1"> 
             <!-- other site configuration --> 
             <traceFailedRequestsLogging  enabled="true" /> 
          </site> 
          <!-- site & app defaults --> 
          <!-- other sites configuration --> 
       </sites> 
       <!-- other system configuration --> 
    </system.applicationHost>
    

Krok 2. Konfigurowanie definicji błędów

W tym kroku skonfiguruj definicje błędów dla adresu URL, w tym obszary do śledzenia. Rozwiążesz problem z kodem stanu 404.2 zwróconym przez usługi IIS pod kątem żądań do rozszerzeń, które nie zostały jeszcze włączone. Pomaga określić, które określone rozszerzenia należy włączyć. Aby uzyskać więcej informacji, zobacz Kody stanu HTTP w usługach IIS.

  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ślne strony głównej witryny sieci Web z wybraną funkcją Reguł śledzenia niepomyślnych żądań.

  5. W okienku Akcje wybierz pozycję Dodaj....

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

    Zrzut ekranu przedstawiający Kreatora dodawania reguły śledzenia niepomyślnych żądań. Opcja Cała zawartość jest zaznaczona na stronie Określanie zawartości do śledzenia.

  7. 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ę Dodawanie reguły śledzenia niepomyślnych żądań z wyświetloną stroną Definiowanie warunków śledzenia i 404 punktami 2 wprowadzonymi jako kod stanu.

  8. Wybierz Dalej.

  9. Na stronie Wybieranie dostawców śledzenia w obszarze Dostawcy zaznacz pole wyboru Serwer WWW i wyczyść wszystkie pozostałe pola wyboru. 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.

  10. W obszarze Czasownik wybierz pozycję Pełne.

    Uwaga 16.

    Podczas instalowania usługi roli Śledzenie usługi iis domyślnie instaluje dostawców śledzenia serwerów WWW, ASP i ISAPI rozszerzeń. Jeśli zainstalujesz program ASP.NET w wersji 2.0 lub nowszej, usługi IIS automatycznie doda dostawcę śledzenia ASPNET. Dodatkowi dostawcy są instalowani przez pakiet instalatora routingu żądań aplikacji (ARR), który instaluje również moduł ponownego zapisywania adresów URL, zarządzanie farmą sieci Web i zewnętrzną pamięć podręczną. Więcej dostawców śledzenia można dodać przy użyciu <add> elementu w elemecie <traceProviderDefinitions> .

    Zrzut ekranu przedstawiający Kreatora dodawania reguły śledzenia niepomyślnych żądań z wyświetloną pozycją Serwer WWW wybrany z listy Dostawcy i Wybrane zabezpieczenia z menu Obszary.

  11. Wybierz Zakończ.

  12. Zostanie wyświetlona następująca definicja domyślnej witryny sieci Web:

    Zrzut ekranu przedstawiający stronę Reguły śledzenia niepomyślnych żądań z wyświetlonym serwerem WWW wprowadzonym jako skojarzony dostawca i 404 punkt 2 jako kod stanu.

    Menedżer usług IIS zapisuje konfigurację w %systemdrive%\inetpub\wwwroot\web.config pliku przy użyciu tagu <location> . Konfiguracja powinna ponownie wykonać następujące czynności:

    <configuration> 
        <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> 
    </configuration>
    

Testowanie i wyświetlanie pliku dziennika żądania niepowodzenia

Ta sekcja pomaga wygenerować żądanie, które zakończyło się niepowodzeniem, i wyświetlić 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ź http://localhost/test.asp i naciśnij ENTER. Zostanie wyświetlony komunikat o błędzie "Błąd HTTP 404.2 — nie znaleziono".

    Zrzut ekranu przedstawiający okno programu Internet Explorer z komunikatem O błędzie H T T P 404 punkt 2 nie znaleziono.

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

  1. Po wygenerowaniu żądania, które zakończyło się niepowodzeniem, otwórz Eksploratora Windows i przejdź do folderu %systemdrive%\inetpub\logs\FailedReqLogFiles\W3SVC1.

    Zrzut ekranu przedstawiający folder W 3 S V C 1 w katalogu plików dziennika req nie powiodło się.

    Uwaga 16.

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

  2. Kliknij prawym przyciskiem myszy plik dziennika błędu 404.2, a następnie wybierz polecenie Otwórz za pomocą ->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 programu Internet Explorer z opcją Kontynuuj, aby wyświetlić monit o wybranie opcji Zablokowanie zawartości witryny sieci Web.

  3. W oknie dialogowym programu Internet Explorer dodaj pozycję about:Internet do listy zaufanych witryn, wykonując następujące kroki:

    1. Wybierz menu Narzędzia, a następnie wybierz pozycję Opcje internetowe.
    2. Wybierz kartę Zabezpieczenia.
    3. Wybierz pozycję Zaufana strefa, a następnie wybierz pozycję Witryny.
    4. Umożliwia to działanie XSL.
  4. Po dodaniu pozycji about:internet do listy zaufanych witryn zostanie wyświetlona strona Podsumowanie żądania:

    Zrzut ekranu przedstawiający stronę Podsumowanie żądania z tabelą Błędy i Ostrzeżenia z kolumnami Ważności, Zdarzenia i Nazwa modułu.

    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ą WARNING, ERRORlub CRITICAL ERROR w ważności. W tym przykładzie WARNING poziom ważności jest spowodowany ograniczeniem ISAPI. Obraz, który próbowano załadować, to %windir%\system32\inetsrv\asp.dll.

  5. Otwórz nieprzetworzonego pliku XML bezpośrednio przy użyciu edytora tekstów i przyjrzyj się zawartości zdarzenia.

Podsumowanie

Wykonano dwa zadania: konfigurowanie śledzenia żądań zakończonych niepowodzeniem w celu przechwytywania śladów dla dowolnego żądania zwracanego przez usługi IIS przy użyciu kodu stanu 404.2 i sprawdzania, czy usługi IIS przechwyciły ślad dla żądania. Sprawdzono również, że plik dziennika freb.xml nie zawiera żadnych żądań innych niż te z kodem zwrotnym 404.2. Podczas konsultacji 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 (takie jak .gif lub pliki .jpg) i pamiętać, że plik dziennika nie dodaje tych śladów. Możesz również łatwo zmienić to zdarzenie 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