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:
- HTTP API hata günlüğünü yapılandırma
Kayıt defteri ayarları HTTP API günlüklerindeki hataları, izin verilen en büyük günlük dosyası boyutunu ve günlük dosyalarının konumunu denetler. - HTTP API hata günlüklerinin biçimi
HTTP API, World Wide Web Consortium (W3C) günlük dosyası kurallarına uygun günlük dosyaları oluşturur. Bu günlük dosyalarını ayrıştırmak için standart araçları kullanabilirsiniz. Ancak, W3C günlük dosyalarının aksine, HTTP API günlük dosyaları sütun adlarını içermez. - HTTP API'sinin günlüğe kaydettiği hata türleri
HTTP API, çeşitli yaygın hataları günlüğe kaydeder.
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.
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ğeri | Açıklama |
| EnableErrorLogging | Hata 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. |
| ErrorLogFileTruncateSize | Hata 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. |
| ErrorLoggingDir | HTTP 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ç
| Alan | Açıklama |
| Tarih | Tarih 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. |
| Saat | Saat 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 Adresi | Etkilenen 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 Adresi | Etkilenen 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. |
| Fiil | Ayrış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 + Sorgu | URL 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 Durumu | Protokol 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ği | HTTP 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ği | Bu 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ği | Açıklama
|
| AppOffline | Hizmet 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. |
| AppPoolTimer | Hizmet 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. |
| AppShutdown | Hizmet 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_AppPool | Uygulama 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_ReqQueue | Uygulama 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_Dropped | Sunucu 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. |
| ConnLimit | Hizmet 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_Refused | NonPagedPool bellek çekirdeği 20 MB'ın altına düştü ve http.sys yeni bağlantı almayı durdurdu |
| Disabled | Hizmet kullanılamıyor hatası oluştu (HTTP hatası 503). Yönetici uygulamayı çevrimdışına çıkardığı için hizmet kullanılamıyor. |
| EntityTooLarge | Varlık, izin verilen en büyük boyutu aştı. |
| FieldLength | Alan uzunluğu sınırı aşıldı. |
| Yasak | Ayrıştırma sırasında yasak bir öğe veya sıra ile karşılaşıldı. |
| Header | Üstbilgide ayrıştırma hatası oluştu. |
| Hostname | Ana bilgisayar adı işlenirken ayrıştırma hatası oluştu. |
| İç | İç sunucu hatası oluştu (HTTP hatası 500). |
| Invalid_CR/LF | Geçersiz satır başı veya satır besleme oluştu. |
| LengthRequired | Gerekli bir uzunluk değeri eksik. |
| Yok | Hizmet 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/I | Bilinmeyen bir aktarım kodlaması nedeniyle uygulanmadı hatası (HTTP hatası 501) veya hizmet kullanılamıyor hatası (HTTP hatası 503) oluştu. |
| Number | Sayı işlenirken ayrıştırma hatası oluştu. |
| Precondition | Gerekli bir önkoşul eksikti. |
| QueueFull | Hizmet 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_ConnectionIdle | Bağ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_Response | Ayrı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.
|
| URL | URL işlenirken ayrıştırma hatası oluştu. |
| URL_Length | URL, izin verilen en büyük boyutu aştı. |
| Fiil | Fiil işlenirken ayrıştırma hatası oluştu. |
| Version_N/S | Sürüm desteklenmiyor hatası oluştu (HTTP hatası 505). |
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
(http://support.microsoft.com/kb/832975/tr/
)
Ek özellikler artık IIS 6.0 ve IIS 7.0'da Httperr#.log dosyasında günlük için kullanılabilir
Makale numarası: 820729 - Son Gözden Geçirme: 30 Kasım 2012 Cuma - Gözden geçirme: 7.0
| kbhttphandlers kbhttp kbapi kberrmsg kbinfo kbfixme kbmsifixme KB820729 |