Błąd rejestrowania API protokołu HTTP

WAŻNE: Ten artykuł został przetłumaczony przy użyciu oprogramowania firmy Microsoft do tłumaczenia maszynowego i może być poprawiony przy użyciu technologii Community Translation Framework (CTF). Firma Microsoft udostępnia artykuły tłumaczone maszynowo, poprawione przez społeczność, a także tłumaczone przez tłumaczy profesjonalnych, aby zapewnić dostęp do wszystkich artykułów w bazie wiedzy w wielu językach. Artykuły tłumaczone maszynowo i poprawione mogą zawierać błędy pisowni, składniowe i gramatyczne. Firma Microsoft nie ponosi odpowiedzialności za żadne nieścisłości, błędy ani szkody spowodowane przez niepoprawne tłumaczenia zawartości ani przez korzystanie z niej przez klientów. Więcej o strukturze CTF: http://support.microsoft.com/gp/machine-translation-corrections/pl.

Anglojęzyczna wersja tego artykułu to: 820729
Streszczenie
W tym artykule opisano funkcje rejestrowania błędów HTTP interfejsów API.

Niektóre błędy występujące w aplikacji, oparte na protokole HTTP są automatycznie obsługiwane przez interfejs API HTTP nie są przekazywane z powrotem do aplikacji w celu przetworzenia. To zachowanie występuje, ponieważ częstotliwość takich błędów w przeciwnym razie może być zalać dziennik zdarzeń lub program obsługi aplikacji.

W następujących tematach opisano różne aspekty rejestrowanie błędów HTTP API.
Więcej informacji

Konfigurowanie rejestrowania błędów HTTP API

Aby automatycznie skonfigurować rejestrowanie błędów HTTP API dla Ciebie, przejdź do "Poniżej znajdziesz łatwe rozwiązanie". Jeśli wolisz skonfigurować rejestrowanie się błędów HTTP API, przejdź do "Samodzielne rozwiązywanie problemu".

Poniżej znajdziesz łatwe rozwiązanie

Aby automatycznie rozwiązać ten problem, kliknij przycisk Pobierz . W oknie dialogowym Pobieranie pliku kliknij przycisk Otwórzlub Uruchom , a następnie wykonaj kroki w Kreatorze łatwo ustalić.
  • Ten kreator może być tylko w języku angielskim. Jednak naprawa automatyczna działa również w innych wersjach językowych systemu Windows.
  • Jeśli nie pracujesz na komputerze, którego dotyczy problem, zapisz narzędzie naprawy FixIt na dysku flash lub dysku CD, a następnie uruchom go na komputerze, którego dotyczy problem.
Wyłącz rejestrowanie błędów HTTP API
Aby włączyć rejestrowanie błędów HTTP API

Samodzielne rozwiązywanie problemu

Trzy wartości rejestru w kluczu HTTP \Parameters sterowania rejestrowanie błędów HTTP API. Te klucze znajdują się w następującym kluczu rejestru:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
Uwaga: Lokalizacja i forma wartości konfiguracji może się zmieniać w nowszych wersjach systemu operacyjnego Windows.

Trzeba mieć poświadczenia administratora/Local System do zmiany wartości rejestru oraz aby wyświetlić lub zmienić pliki dziennika i folder, który je zawiera.

Informacje o konfiguracji w wartości rejestru jest odczytywana podczas uruchamiania sterownik interfejsu API protokołu HTTP. W związku z tym jeśli zmienisz ustawienia, należy zatrzymać i ponownie uruchomić sterownik, aby odczytać nowe wartości. Aby to zrobić, wpisz następujące polecenia konsoli:
polecenie net stop http
polecenie net start http
Pliki dziennika służy następującej konwencji nazewnictwa:
httperr + numer sekwencyjny + .log
Przykład: httperr4.log
Pliki dziennika są przełączane, gdy osiągnie maksymalny rozmiar, który określa wartość rejestru ErrorLogFileTruncateSize . Ta wartość nie może być mniejsza niż jeden megabajt (MB).

Jeśli Konfiguracja rejestrowania błędów jest nieprawidłowa lub wszelkiego rodzaju błąd występuje, gdy interfejs API HTTP jest zapisywanie do plików dziennika, HTTP API używa rejestrowania zdarzeń do powiadamiania administratorów nie występuje błąd rejestrowania.

Poniższa tabela zawiera opis wartości konfiguracji rejestru.
Wartość rejestruOpis
EnableErrorLoggingDWORD że można ustawić na wartość TRUE Aby włączyć rejestrowanie błędów lub FALSE go wyłączyć. Wartością domyślną jest TRUE.
ErrorLogFileTruncateSizeDWORD , która określa w bajtach maksymalny rozmiar pliku dziennika błędów. Wartością domyślną jest 1 MB (0x100000).

Uwaga: Określona wartość nie może być mniejsza niż wartość domyślna.
ErrorLoggingDirCiąg , który określa folder, w którym HTTP API umieszcza jego plikach dziennika.

Interfejs API HTTP tworzy podfolder HTTPERR w określonym folderze, a następnie przechowuje pliki dziennika w podfolderze. W tym podfolderze i pliki dziennika otrzymują te same ustawienia uprawnień. Administrator i lokalne konta systemowe mają pełny dostęp. Inni użytkownicy nie mają dostępu.

Poniżej przedstawiono domyślnego folderu, gdy folder nie jest określona w rejestrze:
%SystemRoot%\system32\LogFiles

Uwaga: Wartość ciągu ErrorLoggingDir musi być kwalifikowaną ścieżką lokalną. Może jednak zawierać % SystemRoot %. Nie można użyć dysku sieciowym lub w udziale sieciowym.

Powrót do początku

Format dzienniki błędów HTTP API

Ogólnie rzecz biorąc pliki dziennika błędów HTTP API mają taki sam format jak dzienniki błędów W3C, z tym wyjątkiem, że pliki dziennika błędów HTTP API nie zawierają nagłówki kolumn. Każdy wiersz dziennik błędów HTTP API rekordy jeden błąd. Pola są wyświetlane w określonej kolejności. Spacją (0x0020) oddziela każde pole z poprzedniego pola. W każdym polu znaki plus (0x002B) zastępuje spacje, tabulatory i znaki kontrolne nie mogą być drukowane.

W poniższej tabeli przedstawiono pola i kolejność pól w rekordzie dziennika błędów.
PolaOpis
DataPole Data zapisana w formacie W3C. To pole jest oparte na skoordynowanego czasu uniwersalnego (UTC). Pole daty jest zawsze dziesięciu znaków w postaci RRRR-MM-DD. Na przykład 1 maja 2003 r. jest wyrażana jako 2003-05-01.
CzasWartość pola Czas formacie W3C. To pole jest oparte na UTC. Pole Czas jest zawsze ośmiu znaków w formie MM:HH:SS. Na przykład 5:30 PM (UTC) jest wyrażana jako 17:30:00.
Adres IP klientaAdres IP klienta usterce. Wartość w tym polu może być adres IPv4 lub IPv6. Jeśli adres IP klienta jest adres IPv6, pole IDzakresu jest również zawarte w adresie.
Port klientaNumer portu dla dotkniętych klienta.
Adres IP serweraAdres IP serwera, którego dotyczy luka. Wartość w tym polu może być adres IPv4 lub IPv6. Jeśli adres IP serwera jest adres IPv6, pole IDzakresu jest również zawarte w adresie.
Port serweraNumer portu serwera, którego dotyczy luka.
Wersja protokołuWersja protokołu, który jest używany.

Jeśli połączenie ma nie był analizowany dostatecznie todetermine wersja protokołu, stosowany jest łącznik (0x002D) jako placeholderfor puste pole.

Jeśli numer wersji głównej lub pomocniczy numer wersji, który jest analizowany isgreater niż lub równa 10, wersja jest rejestrowane jako HTTP /?.?.
ZlecenieStan zlecenia, który ostatniego żądania, czyli przeanalizować przebiegów. Nieznany czasowniki są uwzględniane, ale każdy czasownik, który jest większy niż 255 bajtów jest obcinana do tej długości. Jeśli zlecenia nie jest dostępny, łącznik (0x002D) jest używana jako symbol zastępczy puste pola.
CookedURL + kwerendyAdres URL i dowolny typ kwerendy, która jest skojarzona z nim są rejestrowane jako jedno pole, które jest oddzielone znakiem zapytania (0x3F). To pole jest obcinana w jego limit długości o rozmiarze 4096 bajtów.

Jeśli ten adres URL był analizowany ("gotowane"), jest rejestrowany z konwersja stron kodowych lokalnym i jest traktowany jako pole Unicode.

Jeśli ten adres URL ma nie był analizowany ("gotowane") w thetime rejestrowanie, jest ona kopiowana dokładnie, bez żadnej konwersji Unicode.

Jeśli interfejs API HTTP nie może przeanalizować tego adresu URL, hyphen(0x002D) jest używana jako symbol zastępczy puste pola.
Stan protokołuStan protokołu nie może być większa niż 999.

Jeśli stan protokołu odpowiedzi na requestis dostępny, to są rejestrowane w tej dziedzinie.

Jeżeli stan protokołu nie jest dostępny, hyphen(0x002D) jest używana jako symbol zastępczy puste pola.
Identyfikator witrynyNie używany w tej wersji interfejsu API protokołu HTTP. Łącznik symbolu zastępczego (0x002D) jest zawsze wyświetlany w tym polu.
Przyczyna frazyTo pole zawiera ciąg, który identyfikuje rodzaj błędu, które są rejestrowane. To pole nie jest puste.
Nazwa kolejkiTa nazwa kolejki żądania.
Następujące wiersze próbki są z dziennik błędów HTTP API:
2002-07-05 18:45:09 172.31.77.6 2094 172.31.77.6 80 HTTP/1.1 GET /qos/1kbfile.txt 503 — ConnLimit 2002-07-05 19:51:59 127.0.0.1 2780 127.0.0.1 80 HTTP/1.1 GET /ThisIsMyUrl.htm 400-Hostname 2002-07-05 19:53:00 127.0.0.1 2894 127.0.0.1 80 HTTP/2.0 GET / 505 - 05-07-2002 Version_N/S 20:06:01 172.31.77.6 Timer_MinBytesPerSecond 80-----64388 127.0.0.1
Powrót do początku

Rodzaje błędów, które rejestruje API protokołu HTTP

Interfejs API HTTP rejestruje błąd odpowiedzi do klientów, limity czasu połączenia, oddzielonych żądań i przerywaniem połączeń, które są nieprawidłowo obsługiwane.

Poniższa lista opisuje rodzaje błędów, które rejestruje API protokołu HTTP:
  • Odpowiedzi do klientów Interfejs API HTTP wysyła odpowiedź o błędzie do klienta, na przykład 400 błąd powodowany przez błąd analizy w ostatnim żądaniu odebrane. Po interfejsie API HTTP wysyła odpowiedź na błąd, zamyka połączenie.
  • Limity czasu połączenia Interfejs API HTTP kończą połączenia. Jeśli żądanie jest w stanie oczekiwania upłynięcia limitu czasu połączenia w przypadku powiadomienia, wniosek można podać więcej informacji na temat theconnection w dzienniku błędów.
  • Żądania orphaned Procesów trybu użytkownika nieoczekiwanego zatrzymania chociaż istnieje nadal kolejce żądań, które są kierowane do tego procesu. Interfejs API HTTP dzienniki osieroconych żądań w dzienniku błędów.
Rodzaj błędu są wyznaczane przez Frazę przyczyny ciągów, które są zawsze wyświetlane jako ostatnie pole w każdej linii błąd. W poniższej tabeli przedstawiono zwroty przyczyny API protokołu HTTP.
Przyczyna frazyOpis

AppOfflineUsługa niedostępna błąd wystąpił (błąd HTTP 503). Usługa nie jest dostępna, ponieważ przyczyną błędów aplikacji aplikacji przełączony w tryb offline.
AppPoolTimerUsługa niedostępna błąd wystąpił (błąd HTTP 503). Usługa nie jest dostępna, ponieważ proces puli aplikacji jest zbyt zajęta, aby obsłużyć żądanie.
AppShutdownUsługa niedostępna błąd wystąpił (błąd HTTP 503). Usługa nie jest dostępna, ponieważ aplikacja zamknięte automatycznie w odpowiedzi na zasad administratora.
BadRequestPodczas przetwarzania żądania wystąpił błąd analizy.
Client_ResetPołączenia między klientem a serwerem zostało zamknięte, zanim żądanie można przypisywać do procesu roboczego. Najczęstszą przyczyną takiego zachowania jest to, że klient przedwcześnie zamyka połączenie z serwerem.
Connection_Abandoned_By_AppPoolProces roboczy z puli aplikacji ma zostać nieoczekiwanie zamknięty lub porzucone żądania oczekującego zamykając jej uchwyt.
Connection_Abandoned_By_ReqQueueProces roboczy z puli aplikacji ma zostać nieoczekiwanie zamknięty lub porzucone żądania oczekującego zamykając jej uchwyt. Szczególne do Windows Vista i nowszych wersjach oraz systemu Windows Server 2008 i jego nowszych wersjach.
Connection_DroppedPołączenie między klientem a serwerem zostało zamknięte, zanim serwer może wysłać pakiet jego ostatecznej odpowiedzi. Najczęstszą przyczyną takiego zachowania jest to, że klient przedwcześnie zamyka połączenie z serwerem.
Connection_Dropped_List_FullLista elementów usuniętych połączeń między klientami a serwerem jest pełna. Szczególne do Windows Vista i nowszych wersjach oraz systemu Windows Server 2008 i jego nowszych wersjach.
ConnLimitUsługa niedostępna błąd wystąpił (błąd HTTP 503). Usługa nie jest dostępna, ponieważ osiągnął lub przekroczył limit połączeń poziomu witryny.
Connections_RefusedJądro NonPagedPool pamięci spadła poniżej 20MB i sterownik http.sys zatrzymał odbierania nowych połączeń
WyłączoneUsługa niedostępna błąd wystąpił (błąd HTTP 503). Usługa nie jest dostępna, ponieważ administrator przejął aplikacji w trybie offline.
EntityTooLargeJednostka przekracza maksymalny dozwolony rozmiar.
Wartość właściwości FieldLengthPrzekroczono limit długości pola.
ZabronionePodczas analizowania napotkano element zabronione lub sekwencji.
NagłówekWystąpił błąd analizy w nagłówku.
Nazwa hostaWystąpił błąd analizy podczas przetwarzania nazwy hosta.
WewnętrznyWystąpił błąd wewnętrzny serwera (błąd HTTP 500).
Invalid_CR/LFNastąpiło nielegalne powrót karetki i wysuwu wiersza.
LengthRequiredBrak wartości wymaganą długość.
N/D!Usługa niedostępna błąd wystąpił (błąd HTTP 503). Usługa nie jest dostępna, ponieważ wystąpił błąd wewnętrzny (np. Błąd alokacji pamięci lub konflikt listy rezerwacji adresu URL).
N / I(Błąd HTTP 501) wystąpił błąd nie zaimplementowana lub wystąpił błąd niedostępne usługi (błąd HTTP 503) ze względu na nieznane kodowanie transferu.
NumerWystąpił błąd analizy podczas przetwarzania liczbą.
Warunkiem wstępnymBrak wymaganego warunku wstępnego.
Kolejka zapełnionaUsługa niedostępna błąd wystąpił (błąd HTTP 503). Usługa nie jest dostępna, ponieważ kolejki żądań aplikacji jest zapełniony.
RequestLengthPrzekroczono limit długości żądania.
Timer_AppPoolPołączenie wygasła z powodu żądania czekał zbyt długo w kolejkach puli aplikacji dla aplikacji serwera do usuwania kolejki i przetwarza je. Czas trwania tego limitu czasu jest ConnectionTimeout. Domyślnie ta wartość jest równa dwie minuty.
Timer_ConnectionIdlePołączenie wygasł i pozostaje bezczynny. ConnectionTimeout domyślny czas trwania wynosi dwie minuty.
Timer_EntityBodyPołączenie wygasła, zanim przybył w treści żądania. Żądanie ma wyraźnie treść jednostki, HTTP API włącza czasomierza Timer_EntityBody . Po pierwsze limit ten czasomierz ustawiono wartość limitu ConnectionTimeout (zazwyczaj dwie minuty). Za każdym razem innego oznaczenia danych zostanie odebrany na to żądanie, interfejs API HTTP resetuje odliczania czasu, aby dać połączenie 2 minuty (lub cokolwiek w ConnectionTimeoutokreślono).
Timer_HeaderWaitPołączenie wygasła, ponieważ nagłówek analizowanie żądania trwało dłużej niż domyślny limit dwóch minut.
Timer_MinBytesPerSecondPołączenie wygasła, ponieważ klient nie otrzymywał odpowiedzi w rozsądnej prędkości. Szybkość wysyłania odpowiedzi był wolniejszy niż domyślna 240 bajtów na sekundę. Czynności te można kontrolować za pomocą właściwości metabazy MinFileBytesPerSec .
Timer_ReqQueuePołączenie wygasła z powodu żądania czekał zbyt długo w kolejkach puli aplikacji dla aplikacji serwera do usuwania kolejki. Czas trwania tego limitu czasu jest ConnectionTimeout. Domyślnie ta wartość jest równa dwie minuty. Szczególne do Windows Vista i nowszych wersjach oraz systemu Windows Server 2008 i jego nowszych wersjach.
Timer_ResponseZarezerwowane. Aktualnie nieużywany.
Timer_SslRenegotiationPołączenie wygasła z powodu ponowne negocjowanie SSL między klientem a serwerem trwał dłużej niż domyślny limit czasu dwie minuty.
ADRES URLWystąpił błąd analizy podczas przetwarzania adresu URL.
URL_LengthAdres URL przekracza maksymalny dozwolony rozmiar.
ZleceniePodczas przetwarzania zlecenia wystąpił błąd analizy.
Version_N/SW wersji nieobsługiwanych wystąpił błąd (błąd HTTP 505).

Powrót do początku
Materiały referencyjne
Aby uzyskać więcej informacji dotyczących sposobu dodawania pól dodatkowych rejestracji dla rejestrowania błędów HTTP usług IIS kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
832975 Dodatkowe właściwości są teraz dostępne dla rejestrowania w pliku # .log Httperr w usługach IIS 6.0 i IIS 7.0
fixme rozwiązywanie problemu fixit

Ostrzeżenie: ten artykuł przetłumaczono automatycznie

Właściwości

Identyfikator artykułu: 820729 — ostatni przegląd: 03/08/2016 04:52:00 — zmiana: 6.0

Windows Server 2008 R2 Standard, Windows Server 2008 R2 Enterprise, Windows Server 2008 Enterprise, Windows Server 2012 R2 Standard, Windows Server 2012 R2 Datacenter, Windows Server 2012 R2 Essentials, Windows Server 2012 R2 for Embedded Systems, Windows Server 2012 R2 Foundation, Windows Server 2012 Standard, Windows Server 2012 Datacenter, Windows Server 2012 Essentials, Windows 10, Windows 10 Enterprise, released in July 2015, Windows 10 Pro, released in July 2015, Windows 10 Version 1511, Windows 8.1, Windows 8.1 Enterprise, Windows 8.1 Pro, Windows 8, Windows 8 Pro, Windows 8 Enterprise, Windows 7 Professional, Windows 7 Enterprise

  • kbhttphandlers kbhttp kbapi kberrmsg kbinfo kbfixme kbmsifixme kbmt KB820729 KbMtpl
Opinia