Makale numarası: 820729
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu makalede, Köprü Metni Aktarım Protokolü (HTTP) API'lerinin günlüğe hata kaydetme olanakları açıklanmaktadır.

HTTP tabanlı uygulamalarda gerçekleşen bazı hatalar, işlenmek üzere bir uygulamaya iletilmek yerine HTTP API'si tarafından otomatik olarak işlenir. Bu davranış, bu gibi hataların sık olmasının olay günlüğünü veya uygulama işleyicisini taşırabilmesi nedeniyle ortaya çıkmaktadır.

Aşağıdaki konularda, HTTP API hata günlüğünün farklı yönleri açıklanmaktadır:

Daha fazla bilgi

HTTP API hata günlüğünü yapılandırma

HTTP API hata günlüğünü sizin yerinize yapılandırmamızı isterseniz "Benim adıma düzelt" bölümüne gidin. HTTP API hata günlüğünü kendiniz yapılandırmayı tercih ediyorsanız, "Kendim düzeltmek istiyorum" bölümüne gidin.

Benim adıma düzelt



Bu sorunu otomatik olarak düzeltmek için Bu sorunu düzelt düğmesini veya bağlantısını tıklatın. Dosya Yükleme iletişim kutusunda Çalıştır'ı tıklatın ve Fix it Sihirbazı'ndaki adımları uygulayın.

Disable HTTP API error logging
Microsoft Fix it 50635
Enable HTTP API error logging
Microsoft Fix it 50634


Notlar
  • Bu sihirbaz yalnızca İngilizce olabilir. Ancak otomatik düzeltme, Windows'un diğer dil sürümleri için de çalışmaktadır.
  • Sorun olan bilgisayarda değilseniz, Fix it çözümünü bir flash sürücüye veya CD'ye kaydedin ve sonra sorunun yaşandığı bilgisayarda çalıştırın.



Kendim düzeltmek istiyorum

HTTP \Parameters anahtarı altındaki üç kayıt defteri değeri, HTTP API hata günlüğünü denetler. Bu anahtarlar şu kayıt defteri anahtarında bulunur:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
Not Yapılandırma değerlerinin konumu ve biçimi Microsoft Windows işletim sisteminin sonraki sürümlerinde değişebilir.

Kayıt defteri değerlerini değiştirmek, günlük dosyalarını ve onları içeren klasörü görüntülemek veya değiştirmek için Yönetici/Yerel Sistem kimlik bilgilerinizin olması gerekir.

Kayıt defteri değerlerindeki yapılandırma bilgileri, HTTP API sürücüsü başlatıldığında okunur. Bu nedenle, ayarları değiştirirseniz yeni değerleri okumak için sürücüyü durdurup yeniden başlatmanız gerekir. Bunu yapmak için şu konsol komutlarını yazın:
net stop http
net start http
Günlük dosyalarını adlandırırken şu adlandırma kuralı kullanılır:
httperr + sıra numarası + .log
Örnek: httperr4.log
Günlük dosyaları ErrorLogFileTruncateSize kayıt defteri değerinin belirttiği en büyük boyuta ulaştığında başa döndürülür. Bu değer, bir megabayttan (MB) daha az olamaz.

Hata günlüğünün yapılandırması geçerli değilse veya HTTP API'si günlük dosyalarına yazarken herhangi tür bir hata olursa HTTP API'si hata günlüğüne kaydetme işleminin gerçekleşmediğini yöneticilere bildirmek için olay günlüğünü kullanır.

Aşağıdaki tabloda kayıt defteri yapılandırma değerleri açıklanmaktadır.
Bu tabloyu kapaBu tabloyu aç
Kayıt defteri değeriAçıklama
EnableErrorLoggingHata günlüğünü etkinleştirmek için TRUE, devre dışı bırakmak içinse FALSE olarak ayarlanabilen bir DWORD. Varsayılan değer olarak TRUE kullanılır.
ErrorLogFileTruncateSizeHata günlüğü dosyasının en büyük boyutunu bayt cinsinden belirten bir DWORD. Varsayılan değer bir MB'tır (0x100000).

Not Belirtilen değer varsayılan değerden küçük olamaz.
ErrorLoggingDirHTTP API'sinin günlük dosyalarını koyduğu klasörü belirten bir Dize.

HTTP API'si belirtilen klasörde HTTPERR adlı bir alt klasör oluşturduktan sonra günlük dosyalarını bu alt klasöre depolar. Bu alt klasör ve günlük dosyaları aynı izin ayarlarını alır. Yönetici ve Yerel Sistem Hesapları tam erişime sahiptir. Diğer kullanıcıların erişimi yoktur.

Kayıt defterinde klasör belirtilmemişse varsayılan klasör şudur:
%SystemRoot%\System32\LogFiles

NotErrorLoggingDir dize değerinin tamamen elverişli yerel yol olması gerekir. Ancak, % SystemRoot % içerebilir. Ağ sürücüsü veya ağ paylaşımı kullanılamaz.

HTTP API hata günlüklerinin biçimi

Genellikle, HTTP API hata günlüğü dosyaları W3C hata günlükleriyle aynı biçime sahiptir, farklı olarak HTTP API hata günlüğü dosyaları sütun başlıkları içermez. HTTP API hata günlüğünün her satırına bir hata kaydedilir. Alanlar belirli bir sırayla görüntülenir. Tek boşluk karakteri (0x0020) her alanı önceki alandan ayırır. Her alanda, boşluk karakterlerinin, sekmelerin ve yazdırılamayan denetim karakterlerinin yerine artı işaretleri (0x002B) geçer.

Aşağıdaki tabloda, alanlar ve bu alanların hata günlüğü kaydındaki sırası tanımlanmıştır.
Bu tabloyu kapaBu tabloyu aç
AlanAçıklama
TarihTarih alanı W3C biçimine uyar. Bu alan, Eşgüdümlü Evrensel Saat'i (UTC) temel alır. Tarih alanı her zaman GG-AA-YYYY şeklinde ve on karakterlidir. Örneğin, 1 Mayıs 2003, 01-05-2003 şeklinde ifade edilir.
SaatSaat alanı W3C biçimine uyar. Bu alan UTC'yi temel alır. Saat alanı her zaman sekiz karakterli ve DD:SS:SN şeklindedir. Örneğin, 17:30 (UTC), 17:30:00 şeklinde ifade edilir.
İstemci IP AdresiEtkilenen istemcinin IP adresi. Bu alandaki değer, IPv4 adresi veya IPv6 adresi olabilir. İstemci IP adresi IPv6 adresi ise, ScopeId alanı da adrese eklenir.
İstemci Bağlantı NoktasıEtkilenen istemcinin bağlantı noktası numarası.
Sunucu IP AdresiEtkilenen sunucunun IP adresi. Bu alandaki değer, IPv4 adresi veya IPv6 adresi olabilir. Sunucu IP adresi IPv6 adresi ise, ScopeId alanı da adrese eklenir.
Sunucu Bağlantı NoktasıEtkilenen sunucunun bağlantı noktası numarası.
Protokol SürümüKullanılan protokolün sürümü.

Bağlantı, protokol sürümünü belirlemeye yeterli düzeyde ayrıştırılmamışsa, boş alan için yer tutucu olarak tire (0x002D) kullanılır.

Ayrıştırılan ana sürüm numarası veya alt sürüm numarası 10'dan büyük veya 10'a eşitse sürüm günlüğe HTTP/?.? şeklinde kaydedilir.
FiilAyrıştırılan son isteğin geçtiği fiil durumu. Bilinmeyen fiiller dahil edilir, ancak 255 bayttan fazla olan tüm fiiller bu uzunlukta kesilir. Fiil kullanılabilir durumda değilse, boş alan için yer tutucu olarak tire (0x002D) kullanılır.
HazırlanmışURL + SorguURL ve onunla ilişkilendirilmiş tüm sorgular soru işaretiyle (0x3F) ayrılmış tek bir alan olarak günlüğe kaydedilir. Bu alan, uzunluk sınırı olan 4096 baytta kesilir.

Bu URL ayrıştırılmışsa ("hazırlanmışsa"), yerel kod sayfası dönüşümüyle günlüğe kaydedilir ve Unicode alanı olarak değerlendirilir.

Bu URL günlüğe kaydetme sırasında ayrıştırılmamışsa ("hazırlanmamışsa"), Unicode dönüşümü olmadan tam olarak kopyalanır.

HTTP API'si bu URL'yi ayrıştıramıyorsa, boş alanın yer tutucusu olarak tire (0x002D) kullanılır.
Protokol DurumuProtokol durumu 999'dan büyük olamaz.

İstek yanıtının protokol durumu varsa, durum bu alana kaydedilir.

Protokol durumu kullanılamıyorsa, boş alan için yer tutucu olarak tire (0x002D) kullanılır.
Site KimliğiHTTP API'sinin bu sürümünde kullanılmıyor. Bu alanda her zaman yer tutucu tire (0X002D) görünür.
Neden TümceciğiBu alan, günlüğe kaydedilen hatanın türünü tanımlayan bir dize içerir. Bu alan hiçbir zaman boş bırakılmaz.
Sıra AdıBu istek sırası adıdır.
Aşağıdaki örnek satırlar, HTTP API'si hata günlüğündendir:
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 - Version_N/S 2002-07-05 20:06:01 172.31.77.6 64388 127.0.0.1 80 - - - - - Timer_MinBytesPerSecond

HTTP API'sinin günlüğe kaydettiği hata türleri

HTTP API'si istemcilere hata yanıtlarını, bağlantı zaman aşımlarını, artık istekleri ve hatalı işlenen kesilen bağlantıları günlüğe kaydeder.

Aşağıdaki listede, HTTP API'nin günlüğe kaydettiği hata türleri tanımlanmıştır:
  • İstemcilere yanıtlar HTTP API'si hata yanıtını istemciye gönderir; örneğin, son alınan istemcideki bir ayrıştırma hatasının neden olduğu 400 hatası. HTTP API'si hata yanıtını gönderdikten sonra, bağlantıyı sonlandırır.
  • Bağlantı zaman aşımları HTTP API'si bağlantıyı zaman aşımına uğratır. Bağlantı zaman aşımına uğradığında istek bekliyorsa, hata günlüğünde bağlantı hakkında daha fazla bilgi sağlamak için istek kullanılır.
  • Artık istekler Kullanıcı modu işlemine yönlendirilen sıraya alınmış istekler hala varken işlem beklenmedik şekilde çıkar. HTTP API'si artık istekleri hata günlüğüne kaydeder.
Özel hata türleri, her zaman her hata satırının son alanı olarak olarak görünen Neden Tümceciği dizeleri tarafından belirlenir. Aşağıdaki tabloda, HTTP API neden tümcecikleri tanımlanmıştır.
Bu tabloyu kapaBu tabloyu aç
Neden TümceciğiAçıklama

AppOfflineHizmet kullanılamıyor hatası oluştu (HTTP hatası 503). Uygulama hataları uygulamanın çevrimdışına çıkarılmasına neden olduğundan hizmet kullanılamıyor.
AppPoolTimerHizmet kullanılamıyor hatası oluştu (HTTP hatası 503). Uygulama havuzu işlemi isteği işleyemeyecek kadar meşgul olduğundan hizmet kullanılamıyor.
AppShutdownHizmet kullanılamıyor hatası oluştu (HTTP hatası 503). Uygulama, yönetici ilkesine yanıt olarak otomatik kapatıldığından hizmet kullanılamıyor.
BadRequestİstek işlenirken ayrıştırma hatası oluştu.
Client_Resetİstek çalışan işlemine atanamadan önce, istemci ile sunucu arasındaki bağlantı kapatıldı. Bu davranışın en sık karşılaşılan nedeni, istemcinin sunucu bağlantısını zamanından önce kapatmasıdır.
Connection_Abandoned_By_AppPoolUygulama havuzundaki bir çalışan işlemi beklenmedik şekilde çıktı veya tanıtıcısını kapatarak bekleyen bir isteği yarım bıraktı.
Connection_Abandoned_By_ReqQueueUygulama havuzundaki bir çalışan işlemi beklenmedik şekilde çıktı veya tanıtıcısını kapatarak bekleyen bir isteği yarım bıraktı. Windows Vista ve Windows Server 2008'e özel.
Connection_DroppedSunucu son yanıt paketini gönderemeden, istemci ve sunucu arasındaki bağlantı kapatıldı. Bu davranışın en sık karşılaşılan nedeni, istemcinin sunucu bağlantısını zamanından önce kapatmasıdır.
Connection_Dropped_List_Fullİstemciler ile sunucu arasındaki kesilen bağlantılar listesi dolu. Windows Vista ve Windows Server 2008'e özel.
ConnLimitHizmet kullanılamıyor hatası oluştu (HTTP hatası 503). Site düzeyinde bağlantı sınırına ulaşıldığı veya aşıldığı için hizmet kullanılamıyor.
Connections_RefusedNonPagedPool bellek çekirdeği 20 MB'ın altına düştü ve http.sys yeni bağlantı almayı durdurdu
DisabledHizmet kullanılamıyor hatası oluştu (HTTP hatası 503). Yönetici uygulamayı çevrimdışına çıkardığı için hizmet kullanılamıyor.
EntityTooLargeVarlık, izin verilen en büyük boyutu aştı.
FieldLengthAlan uzunluğu sınırı aşıldı.
YasakAyrıştırma sırasında yasak bir öğe veya sıra ile karşılaşıldı.
HeaderÜstbilgide ayrıştırma hatası oluştu.
HostnameAna bilgisayar adı işlenirken ayrıştırma hatası oluştu.
İçİç sunucu hatası oluştu (HTTP hatası 500).
Invalid_CR/LFGeçersiz satır başı veya satır besleme oluştu.
LengthRequiredGerekli bir uzunluk değeri eksik.
YokHizmet kullanılamıyor hatası oluştu (HTTP hatası 503). Bir iç hata (örneğin, bellek ayırma hatası) oluştuğundan hizmet kullanılamıyor.
N/IBilinmeyen bir aktarım kodlaması nedeniyle uygulanmadı hatası (HTTP hatası 501) veya hizmet kullanılamıyor hatası (HTTP hatası 503) oluştu.
NumberSayı işlenirken ayrıştırma hatası oluştu.
PreconditionGerekli bir önkoşul eksikti.
QueueFullHizmet kullanılamıyor hatası oluştu (HTTP hatası 503). Uygulama istek sırası dolu olduğundan hizmet kullanılamıyor.
RequestLengthİstek uzunluğu sınırı aşıldı.
Timer_AppPoolİstek, sunucu uygulamasının onu sıradan çıkarıp işleyebilmesi için uygulama havuzu sırasında çok fazla beklediğinden, bağlantı zaman aşımına uğradı. Bu zaman aşımı süresi: ConnectionTimeout. Varsayılan seçenek olarak bu değer, iki dakika olarak ayarlanır.
Timer_ConnectionIdleBağlantı zaman aşımına uğradı ve boşta kaldı. Varsayılan ConnectionTimeout süresi iki dakikadır.
Timer_EntityBodyİsteğin varlık gövdesi gelmeden önce bağlantı süresi doldu. İsteğin varlık gövdesi olduğu belli olduğunda, HTTP API'si Timer_EntityBody sayacını açar. Başlangıçta bu sayacın sınırı ConnectionTimeout değeri ile (genellikle 2 dakikadır) ayarlanır. Bu istekte her yeni veri göstergesi alındığında, HTTP API'si sayacı sıfırlayarak bağlantıya iki dakika daha (veya ConnectionTimeout değerinde belirtilen kadar) süre ekler.
Timer_HeaderWaitİsteğin üstbilgisinin ayrıştırılması varsayılan iki dakikalık süreden daha uzun sürdüğünden bağlantı zaman aşımına uğradı.
Timer_MinBytesPerSecondİstemci makul hızda yanıt almadığı için bağlantı zaman aşımına uğradı. Yanıt gönderme hızı varsayılan 240 bayt/sn hızından daha yavaştı. Bu, MinFileBytesPerSec metatabanı özelliği ile kontrol edilebilir.
Timer_ReqQueueİstek, sunucu uygulamasının onu sıradan çıkarabilmesi için uygulama havuzu sırasında çok fazla beklediğinden, bağlantı zaman aşımına uğradı. Bu zaman aşımı süresi: ConnectionTimeout. Varsayılan seçenek olarak bu değer, iki dakika olarak ayarlanır. Windows Vista ve Windows Server 2008'e özel.
Timer_ResponseAyrılmış. Şu an kullanılmıyor.
Timer_SslRenegotiation İstemci ve sunucu arasındaki SSL yeniden anlaşması varsayılan iki dakikalık zaman aşımından daha uzun sürdüğü için bağlantı süresi doldu.
URLURL işlenirken ayrıştırma hatası oluştu.
URL_LengthURL, izin verilen en büyük boyutu aştı.
FiilFiil işlenirken ayrıştırma hatası oluştu.
Version_N/SSürüm desteklenmiyor hatası oluştu (HTTP hatası 505).

Referanslar

IIS HTTP hata günlüğüne başka günlük alanları ekleme hakkında daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
832975 Ek özellikler artık IIS 6.0 ve IIS 7.0'da Httperr#.log dosyasında günlük için kullanılabilir

Özellikler

Makale numarası: 820729 - Last Review: 30 Kasım 2012 Cuma - Gözden geçirme: 7.0
Anahtar Kelimeler: 
kbhttphandlers kbhttp kbapi kberrmsg kbinfo kbfixme kbmsifixme KB820729

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com