ID Artikel: 820729
Perbesar semua | Perkecil semua

Pada Halaman ini

Ringkasan

Artikel ini menjelaskan kemampuan pencatatan galat pada API Protokol Transfer Hiperteks (HTTP).

Beberapa galat yang terjadi pada aplikasi berbasis HTTP ditangani secara otomatis oleh API HTTP bukan dikembalikan ke aplikasi untuk ditangani. Perilaku ini terjadi karena frekuensi galat semacam ini jika dibiarkan dapat membanjiri log peristiwa atau pegangan aplikasi.

Topik berikut ini menjelaskan aspek yang berbeda-beda pada pencatatan galat API HTTP:

Informasi lebih lanjut

Konfigurasi pengelogan galat API HTTP

Untuk meminta kami mengkonfigurasi pengelogan galat API HTTP, buka bagian "Perbaiki ini untuk saya". Apabila Anda lebih suka mengkonfigurasi pengelogan galat API HTTP sendiri, buka bagian "Biarkan saya memperbaiki sendiri".

Perbaiki ini untuk saya



Untuk memperbaiki masalah ini secara otomatis, klik tombol atau tautan Fix it . Di kotak dialog Unduh Berkas, klik Jalankan kemudian ikuti langkah-langkah di Wisaya Fix It.

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


Catatan
  • Wisaya ini mungkin hanya tersedia dalam bahasa Inggris. Namun, perbaikan otomatis juga bekerja pada versi Windows dalam bahasa lain.
  • Jika Anda tidak berada di depan komputer yang mengalami masalah, simpan solusi Fix It ke kandar flash atau CD, kemudian jalankan di komputer yang mengalami masalah.



Biarkan saya memperbaiki sendiri

Tiga nilai registri di bawah HTTP \kunci Parameter mengontrol pengelogan galat API HTTP. Kunci-kunci tersebut terdapat pada kunci registri di bawah ini:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
Catatan Lokasi dan bentuk nilai konfigurasi dapat berubah di versi Sistem Operasi Microsoft Windows yang lebih baru.

Anda harus memiliki kredensial sebagai Administrator/Sistem Lokal untuk mengubah nilai registri, dan untuk melihat atau mengubah berkas log dan berkas yang menampungnya.

Informasi konfigurasi di dalam nilai registri akan dibaca ketika pengandar API HTTP memulai. Maka dari itu, jika Anda mengubah pengaturannya, Anda harus berhenti, kemudian mulai ulang pengandar untuk membaca nilai yang baru. Untuk melakukannya, ketik perintah konsol berikut ini:
net stop http
net start http
Konvensi penamaan berikut ini digunakan untuk menamai berkas log:
httperr + nomor urut + .log
Contoh: httperr4.log
Berkas log akan disiklus saat mencapai ukuran maksimum yang disebutkan nilai registri ErrorLogFileTruncateSize. Nilai ini tidak boleh kurang dari 1 megabyte (MB).

Jika konfigurasi pengelogan galat tidak valid, atau jika terjadi kegagalan jenis apapun ketika API HTTP ditulis pada berkas log, API HTTP menggunakan pengelogan kejadian untuk memberitahukan administrator bahwa pengelogan galat tidak terjadi.

Tabel berikut ini mendeskripsikan nilai konfigurasi registri.
Perkecil tabel iniPerbesar tabel ini
Nilai registriDeskripsi
EnableErrorLoggingSebuah DWORD yang dapat Anda tetapkan menjadi TRUE untuk mengaktifkan pengelogan galat atau menjadi FALSE untuk menonaktifkannya. Nilai asalinya adalah TRUE.
ErrorLogFileTruncateSizeSebuah DWORD yang menentukan ukuran maksimum berkas log galat, dalam byte. Nilai asali adalah satu MB (0x100000).

Catatan Nilai yang dimasukkan tidak boleh lebih kecil daripada nilai asali.
ErrorLoggingDirSebuah Untai yang menetapkan berkas di mana API HTTP akan menaruh berkas pengelogan.

API HTTP akan membuat subfolder HTTPERR pada folder tersebut, kemudian menyimpan berkas log di dalam subfolder. Subfolder dan berkas log menerima pengaturan perizinan yang sama. Administrator dan Akun Sistem Lokal memiliki akses penuh. Pengguna lain tidak memiliki akses.

Berikut adalah folder asali jika folder tidak disebutkan di dalam registri:
%SystemRoot%\System32\LogFiles

Catatan Nilai untai ErrorLoggingDir harus merupakan jalur lokal yang memenuhi syarat. Namun, jalur tersebut boleh mengandung %SystemRoot%. Kandar jaringan atau berbagi jaringan tidak dapat digunakan.

Format log galat API HTTP

Secara umum, berkas log galat API HTTP memiliki format yang sama dengan log galat W3C, kecuali bahwa berkas log galat API HTTP tidak memiliki judul kolom. Tiap baris pada log galat API HTTP mencatat satu galat. Kolom muncul dalam urutan yang spesifik. Karakter satu spasi (0x0020) memisahkan tiap kolom dari kolom sebelumnya. Pada tiap kolom, tanda plus (0x002B) akan menggantikan karakter spasi, tab, dan karakter kontrol yang tidak dapat dicetak.

Tabel berikut ini menandakan kolom dan urutan kolom dalam catatan log galat.
Perkecil tabel iniPerbesar tabel ini
KolomDeskripsi
TanggalKolom tanggal mengikuti format W3C. Kolom ini berdasarkan Coordinated Universal Time (UTC). Kolom tanggal selalu berisi 10 karakter dalam bentuk YYYY-MM-DD. Contohnya, 1 Mei 2003 ditulis sebagai 2003-05-01.
WaktuKolom waktu mengikuti format W3C. Kolom ini berdasarkan UTC. Kolom tanggal selalu berisi 8 karakter dalam bentuk MM:HH:SS. Contohnya, pukul 5:30 PM (UTC) ditulis sebagai 17:30:00.
Alamat IP KlienAlamat IP klien yang terpengaruh. Nilai dalam kolom ini dapat berupa alamat IPv4 atau alamat IPv6. Jika alamat IP klien adalah alamat IPv6, kolom ScopeId juga dimasukkan ke dalam alamat.
Port KlienNomor port untuk klien yang terpengaruh.
Alamat IP ServerAlamat IP server yang terpengaruh. Nilai dalam kolom ini dapat berupa alamat IPv4 atau alamat IPv6. Jika alamat IP server adalah alamat IPv6, kolom ScopeId juga dimasukkan ke dalam alamat.
Port ServerNomor port dari server yang terpengaruh.
Versi ProtokolVersi dari protokol yang digunakan.

Jika sambungan tidak dipilah secara memadai untuk menentukan versi protokol, tanda penghubung (0x002D) digunakan sebagai pengisi kolom yang kosong.

Jika nomor versi utama dan nomor versi tambahan yang dipilah ternyata lebih dari atau sama dengan 10, versi akan dicatat ke dalam log sebagai HTTP/?.?.
Kata kerjaKata kerja menyatakan permintaan terakhir yang dipilah telah dilewatkan. Kata kerja tak diketahui akan dimasukkan, namun kata kerja dengan lebih dari 255 byte akan dipendekkan menjadi sepanjang ini. Jika kata kerja tidak tersedia, tanda penghubung (0x002D) akan digunakan sebagai pengganti kolom yang kosong.
CookedURL + KueriURL dan permintaan mana pun yang terhubung dengannya akan dicatat ke dalam log sebagai satu kolom dan dipisahkan oleh tanda tanya (0x3F). Kolom ini dipendekkan menjadi sepanjang batasan 4096 byte.

Jika URL ini telah dipilah ("cooked"), maka akan dicatat ke dalam log dengan konversi halaman kode lokal, dan dianggap sebagai kolom Unicode.

Jika URL ini belum dipilah ("cooked") pada saat pengelogan, maka akan disalin seluruhnya, tanpa konversi menjadi Unicode.

Jika API HTTP tidak dapat memilah URL ini, tanda penghubung (0x002D) akan digunakan sebagai pengganti kolom yang kosong.
Status ProtokolStatus protokol tidak dapat melebihi 999.

Jika status protokol dari respons pada permintaan tersedia, maka akan dicatat ke dalam log pada kolom ini.

Jika status protokol tidak tersedia, tanda penghubung (0x002D) akan digunakan sebagai pengganti kolom yang kosong.
SiteIdTidak digunakan pada API HTTP versi ini. Tanda penghubung (0x002D) untuk pengisi selalu ada dalam kolom ini.
Frasa AlasanKolom ini berisi untai yang menunjukkan jenis galat yang sedang dicatat ke dalam log. Kolom ini tidak boleh kosong.
Nama AntrianIni adalah permintaan nama antrian.
Baris berikut ini adalah contoh dari log galat API HTTP:
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

Jenis galat yang dicatat oleh log API HTTP

API HTTP mencatat log galat yang merespons ke klien, Waktu sambungan habis, permintaan yang ditinggalkan, dan sambungan yang putus yang ditangani dengan tidak benar.

Daftar berikut ini menunjukkan jenis galat yang dicatat oleh log API HTTP:
  • Merespons ke klien API HTTP mengirimkan respons galat ke klien, contohnya, galat 400 yang disebabkan oleh galat pemilahan saat penerimaan permintaan terakhir kali. Setelah API HTTP mengirimkan respons galat, maka sambungan akan terputus.
  • Waktu sambungan habis API HTTP kehabisan waktu sambungan. Jika permintaan tertunda saat waktu sambungan habis, permintaan digunakan untuk menyediakan informasi lebih lanjut mengenai sambungan dalam log galat.
  • Permintaan yang ditinggalkan Proses mode pengguna berhenti secara tiba-tiba ketika masih ada permintaan yang mengantri yang diarahkan ke proses tersebut. API HTTP mencatat ke dalam log permintaan yang ditinggalkan ke dalam log galat.
Jenis galat yang spesifik ditunjukkan oleh untai Frasa Alasan yang selalu muncul pada akhir kolom dari tiap baris galat. Tabel berikut ini menunjukkan Frasa Alasan API HTTP.
Perkecil tabel iniPerbesar tabel ini
Frasa AlasanDeskripsi

AppOfflineTerjadi galat layanan tidak tersedia (galat HTTP 503). Layanan tidak tersedia karena galat aplikasi menyebabkan aplikasi dibawa luring.
AppPoolTimerTerjadi galat layanan tidak tersedia (galat HTTP 503). Layanan tidak tersedia karena proses pool aplikasi terlalu sibuk menangani permintaan.
AppShutdownTerjadi galat layanan tidak tersedia (galat HTTP 503). Layanan tidak tersedia karena aplikasi menutup secara otomatis sebagai respons atas kebijakan administrator.
BadRequestGalat pemilahan terjadi saat memroses suatu permintaan.
Client_ResetSambungan antara klien dengan server tertutup sebelum permintaan dapat diajukan ke proses pengerjaan. Penyebab terjadinya yang paling umum adalah klien terlalu cepat menutup sambungan ke server.
Connection_Abandoned_By_AppPoolProses pengerjaan dari pool aplikasi berhenti secara tiba-tiba atau mengabaikan permintaan yang tertunda dengan menutup pegangan.
Connection_Abandoned_By_ReqQueueProses pengerjaan dari pool aplikasi berhenti secara tiba-tiba atau mengabaikan permintaan yang tertunda dengan menutup pegangan. Khusus untuk Windows Vista dan Windows Server 2008.
Connection_DroppedSambungan antara klien dan server tertutup sebelum server dapat mengirimkan paket respons akhir. Penyebab terjadinya yang paling umum adalah klien terlalu cepat menutup sambungan ke server.
Connection_Dropped_List_FullDaftar koneksi yang terputus antara klien dan server telah penuh. Khusus untuk Windows Vista dan Windows Server 2008.
ConnLimitTerjadi galat layanan tidak tersedia (galat HTTP 503). Layanan tidak tersedia karena tingkat batas sambungan situs telah tercapai atau melebihi.
Connections_RefusedMemori NonPagedPool kernel turun sampai kurang dari 20MB dan http.sys berhenti menerima sambungan baru
Tidak aktifTerjadi galat layanan tidak tersedia (galat HTTP 503). Layanan ini tidak tersedia karena administrator telah membawa aplikasi ke luring.
EntityTooLargeEntitas melebihi ukuran maksimum yang diizinkan.
FieldLengthMelebihi batas panjang kolom.
LaranganElemen atau urutan yang dilarang ditemukan saat memilah.
JudulTerjadi galat pemilahan di judul.
Nama hostGalat pemilahan terjadi saat memroses sebuah Nama host.
InternalGalat server internal terjadi (galat HTTP 500).
Invalid_CR/LFTelah terjadi pengembalian pembawa atau umpan baris ilegal.
LengthRequiredNilai panjang yang dibutuhkan telah hilang.
N/ATerjadi galat layanan tidak tersedia (galat HTTP 503). Layanan tidak tersedia karena terjadi galat internal (misalnya kegagalan alokasi memori).
Tidak DiterapkanTerjadi galat yang tidak diterapkan (galat HTTP 501), atau terjadi galat layanan tidak tersedia (galat HTTP 503) karena pengkodean transfer tidak dikenal.
NomorGalat pemilahan terjadi saat memroses suatu nomor.
PrakondisiPrakondisi yang dibutuhkan telah hilang.
QueueFullTerjadi galat layanan tidak tersedia (galat HTTP 503). Layanan tidak tersedia karena permintaan antrian aplikasi sudah penuh.
RequestLengthMelebihi batas panjang permintaan.
Timer_AppPoolSambungan kadaluwarsa karena permintaan yang menunggu terlalu lama dalam antrian pool aplikasi untuk aplikasi server supaya membagi dan memrosesnya. Durasi waktu habis adalah ConnectionTimeout. Secara asali, nilai ini ditetapkan ke 2 menit.
Timer_ConnectionIdleSambungan kedaluwarsa dan tetap diam. Durasi asali ConnectionTimeout adalah dua menit.
Timer_EntityBodySambungan kedaluwarsa sebelum badan entitas permintaan datang. Ketika sudah jelas bahwa suatu permintaan memiliki badan entitas, API HTTP akan menghidupkan penghitung waktu Timer_EntityBody. Pada awalnya, batas penghitung waktu ini disetel ke nilai ConnectionTimeout (biasanya 2 menit). Tiap kali indikasi data lain diterima dalam permintaan ini, API HTTP akan mereset penghitung waktu untuk memberikan sambungan dua menit tambahan (atau waktu berapa pun yang ditetapkan di dalam ConnectionTimeout).
Timer_HeaderWaitSambungan kedaluwarsa karena pemilahan judul untuk permintaan memakan waktu lebih dari dua menit.
Timer_MinBytesPerSecondSambungan kedaluwarsa karena klien tidak menerima respons pada kecepatan yang wajar. Kecepatan pengiriman respons lebih lambat daripada kecepatan asali 240 byte/detik. Kecepatan ini dapat dikontrol dengan properti metabase MinFileBytesPerSec.
Timer_ReqQueueSambungan kedaluwarsa karena permintaan yang menunggu terlalu lama dalam antrian pool aplikasi untuk aplikasi server untuk keluar antrian. Durasi waktu habis adalah ConnectionTimeout. Secara asali, nilai ini ditetapkan ke 2 menit. Khusus untuk Windows Vista dan Windows Server 2008.
Timer_ResponseDicadangkan. Saat ini tidak digunakan.
Timer_SslRenegotiation Sambungan berakhir karena renegosiasi antara klien dan server berlangsung lebih lama dari batas waktu asali dua menit.
URLGalat pemilahan terjadi saat memroses sebuah URL.
URL_LengthSebuah URL melebihi ukuran maksimum yang diizinkan.
Kata kerjaGalat pemilahan terjadi saat memroses sebuah kata kerja.
Version_N/STerjadi galat versi tidak didukung (galat HTTP 505).

Referensi

Untuk informasi selengkapnya tentang menambah kolom log untuk pengelogan galat IIS HTTP, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
832975 Properti tambahan sekarang tersedia untuk pengelogan dalam berkas Httperr#.log di IIS 6.0 dan IIS 7.0 (Mungkin tersedia dalam bahasa Inggris)

Properti

ID Artikel: 820729 - Kajian Terakhir: 30 November 2012 - Revisi: 4.0
Kata kunci: 
kbhttphandlers kbhttp kbapi kberrmsg kbinfo kbfixme kbmsifixme KB820729

Berikan Masukan

 

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