Udostępnij za pośrednictwem


Rozwiązywanie problemów z żądaniami zakończonymi niepowodzeniem 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 na autonomicznych serwerach usług IIS, jak i w witrynach sieci Web platformy Microsoft Azure (WAWS). Jeśli możesz odtworzyć występujący problem, śledzenie oparte na żądaniach umożliwia określenie, co dokładnie dzieje się z żądaniami i dlaczego tak 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 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 ten temat w witrynach sieci Web platformy Microsoft 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, w którym podasz 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 zajmuje trochę czasu, aby przetworzyć lub nie odpowiada, możesz użyć śledzenia żądania zakończonego niepowodzeniem.

Zadania opisane 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 zainstaluj usługi IIS 8.5. 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 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 Web Server (IIS)/Web Server/Application Development Features/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

Bycie w grupie administratorów domyślnie nie daje ci pełnych praw użytkownika administratora. Aplikacje należy uruchomić jako administrator, klikając prawym przyciskiem myszy ikonę aplikacji i wybierając pozycję Uruchom jako administrator.

Tworzenie kopii zapasowej

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

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

    Zrzut ekranu przedstawiający Administracja 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, 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, 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 Menedżer I I S 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ć usługę ASP. Aktywne strony serwera będą wyświetlane jako Niedozwolone.

    Zrzut ekranu przedstawiający okienko Ograniczenia I S A P I i C G I z wybranymi stronami aktywnego serwera. Opcja Odmowa jest zaznaczona w okienku Akcje.

Włączanie śledzenia żądań zakończonych niepowodzeniem

Po włączeniu śledzenia żądań zakończonych niepowodzeniem należy skonfigurować ścieżkę plików dziennika. W tej sekcji włączysz śledzenie żądań zakończonych niepowodzeniem dla domyślnej witryny sieci Web i określisz miejsce przechowywania plików dziennika, a następnie skonfigurujesz błąd, dla którego mają zostać wygenerowane dzienniki błędów.

Krok 1. Włącz śledzenie żądań zakończonych niepowodzeniem dla witryny i skonfiguruj katalog 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 okienko Akcje z wyróżnioną opcją Śledzenia żądań zakończonych niepowodzeniem w obszarze Konfigurowanie karty.

  5. W oknie dialogowym Edytowanie ustawień śledzenia żądań zakończonych niepowodzeniem witryny sieci Web skonfiguruj następujące elementy:

    • Zaznacz pole wyboru Włącz .
    • Zachowaj wartości domyślne dla innych ustawień.

    Zrzut ekranu przedstawia okno dialogowe Edytowanie ustawień śledzenia żądań zakończonych niepowodzeniem w witrynie sieci Web z zaznaczonym polem wyboru Wypełnij pole katalogowe i Włącz.

  6. Wybierz przycisk OK.

    Rejestrowanie śledzenia żądań zakończonych niepowodzeniem 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 zwracanym przez usługi IIS dla wszystkich żądań do rozszerzeń, które nie zostały jeszcze włączone. Pomaga określić, które konkretne 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 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 Narzędzia główne witryny sieci Web z wybraną funkcją Reguły śledzenia żądań zakończonych niepowodzeniem.

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

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

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

  7. Na stronie Definiowanie warunków śledzenia zaznacz pole wyboru Kody stanu i wprowadź 404.2 jako kod stanu do śledzenia.

    Zrzut ekranu przedstawiający pozycję Dodaj regułę śledzenia żądań zakończonych niepowodzeniem z widoczną stroną Definiowanie warunków śledzenia i 404 punktem 2 wprowadzonym jako kod stanu.

  8. Wybierz pozycję Dalej.

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

  10. W obszarze Pełność wybierz pozycję Pełne.

    Uwaga

    Podczas instalowania usługi roli śledzenia usługi IIS domyślnie instaluje serwer WWW, asp i isapi rozszerzenia śledzenia dostawców. Jeśli zainstalujesz ASP.NET wersji 2.0 lub nowszej, usługi IIS automatycznie dodają 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ą. Możesz dodać więcej dostawców śledzenia przy użyciu <add> elementu w elemencie <traceProviderDefinitions> .

    Zrzut ekranu przedstawiający Kreatora dodawania reguły śledzenia żądań zakończonych niepowodzeniem z wyświetlonym serwerem WWW wybranym z listy Dostawcy i opcją Zabezpieczenia wybraną 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 żądań zakończonych niepowodzeniem 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 utworzyć następujące elementy:

    <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 ułatwia wygenerowanie żądania zakończonej niepowodzeniem i wyświetlenie wynikowego dziennika ś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ź klawisz http://localhost/test.asp i naciśnij klawisz ENTER. Zostanie wyświetlony komunikat o błędzie "Błąd HTTP 404.2 — nie znaleziono".

    Zrzut ekranu przedstawiający okno programu Internet Explorer z wyświetloną stroną komunikatu H T T P Error 404 point 2 dash Not Found (Nie znaleziono).

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

  1. Teraz, gdy żądanie zakończone niepowodzeniem zostało wygenerowane, otwórz Eksploratora Windows i przejdź do folderu %systemdrive%\inetpub\logs\FailedReqLogFiles\W3SVC1.

    Zrzut ekranu folderu W 3 S V C 1 w katalogu req log files zakończonym niepowodzeniem.

    Uwaga

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

  2. 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 okna dialogowego programu Internet Explorer z wybraną opcją Kontynuuj, aby wyświetlić monit o zablokowanie zawartości witryny internetowej.

  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 protokołu XSL.
  4. Po dodaniu elementu 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 nazwy modułu.

    Podsumowanie żądania zakończonej niepowodzeniem jest rejestrowane u góry, a w tabeli Errors & Warnings (Błędy & ostrzeżenia) są rejestrowane wszystkie zdarzenia WARNINGo ważności , ERRORlub .CRITICAL ERROR 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 nieprzetworzony plik XML bezpośrednio przy użyciu edytora tekstów i przyjrzyj się zawartości zdarzenia.

Podsumowanie

Wykonano dwa zadania: skonfigurowanie śledzenia żądań zakończonych niepowodzeniem w celu przechwycenia śladów dla każdego żądania zwracanego przez usługi IIS z kodem stanu 404.2 oraz sprawdzenie, czy usługi IIS przechwyciły ślad żądania. Sprawdzono również, że plik dziennika freb.xml nie zawiera żadnych żądań innych niż te z kodem zwrotnym 404.2. Po zapoznaniu się 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 .gif lub pliki .jpg) i pamiętać, że plik dziennika nie dodaje tych śladów. Można 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 elemencie 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