Bagikan melalui


HttpErrors Kesalahan <HTTP>

Gambaran Umum

Elemen ini <httpErrors> memungkinkan Anda mengonfigurasi pesan kesalahan kustom untuk situs Web atau aplikasi Anda. Pesan kesalahan kustom memungkinkan Anda memberikan respons yang ramah atau lebih informatif dengan menyajikan file, mengembalikan sumber daya lain, atau mengalihkan ke URL saat pengunjung situs Anda tidak dapat mengakses konten yang mereka minta. Misalnya, Anda mungkin ingin mengkustomisasi setiap halaman pesan kesalahan agar situs Web Anda memiliki tampilan dan nuansa yang sama seperti situs Anda lainnya.

Elemen <httpErrors> berisi kumpulan <error> elemen, yang masing-masing mendefinisikan pesan kesalahan yang digunakan IIS untuk merespons kesalahan HTTP tertentu. Anda dapat menambahkan pesan kesalahan kustom ke IIS dengan menambahkan <error> elemen ke <httpErrors> elemen dalam file Web.config untuk situs, aplikasi, atau URL Anda. Setiap <error> elemen menggunakan atribut responseMode untuk menentukan apakah IIS menyajikan konten statis, konten dinamis, atau mengalihkan ke URL terpisah sebagai respons terhadap kesalahan.

Anda dapat menggunakan <remove> elemen untuk menghapus pesan kesalahan tertentu dari kumpulan pesan kesalahan yang diwarisi situs atau aplikasi Anda dari tingkat yang lebih tinggi dalam hierarki konfigurasi IIS. Selain itu <clear> , Anda dapat menggunakan elemen untuk menghapus semua pesan kesalahan HTTP dari kumpulan pesan kesalahan HTTP yang diwarisi situs atau aplikasi Anda.

Elemen ini <httpErrors> juga berisi atribut yang mengonfigurasi IIS 7 untuk memproses permintaan yang menyebabkan kesalahan. Atribut existingResponse mendefinisikan apa yang dilakukan IIS 7 ke respons yang ada saat server mengembalikan kode status kesalahan HTTP. Atribut defaultPath menentukan jalur ke halaman kesalahan pelanggan jika Anda memilih tentukan File untuk atribut responseMode dalam <error> elemen .

Atribut detailedMoreInformationLink menentukan tautan ke informasi selengkapnya tentang kesalahan tertentu.

Elemen ini <httpErrors> juga dapat berisi atribut errorMode yang dapat Anda gunakan untuk mengontrol tingkat detail yang dikembalikan IIS ke browser saat terjadi kesalahan HTTP. Anda dapat mengatur atribut errorMode ke DetailedLocalOnly, yang merupakan pengaturan default, atau Anda dapat mengaturnya ke Kustom atau Terperinci. Jika Anda menentukan DetailedLocalOnly, atau jika Anda tidak menentukan nilai errorMode , IIS mengembalikan informasi kesalahan terperinci hanya ke browser di server lokal dan pesan kesalahan kustom ke browser di komputer eksternal. Jika Anda mengatur nilai errorMode ke Kustom, IIS hanya mengembalikan pesan kesalahan kustom ke semua browser yang meminta. Jika Anda mengatur nilai errorMode ke Terperinci, IIS mengembalikan informasi kesalahan terperinci ke semua browser yang meminta. Nilai DetailedLocalOnly default memungkinkan Anda memecahkan masalah kesalahan HTTP di server lokal sambil tidak mengekspos informasi sensitif ke browser eksternal.

Secara default, IIS melayani pesan kesalahan yang ditentukan dalam file yang disimpan di folder %SystemRoot%\Help\IisHelp\Common. Anda dapat membuat pesan kesalahan kustom untuk pengguna dan mengonfigurasi IIS untuk mengembalikan halaman ini setiap kali mengalami kesalahan HTTP tertentu di situs Anda.

Kompatibilitas

Versi Catatan
IIS 10.0 Elemen <httpErrors> tidak dimodifikasi dalam IIS 10.0.
IIS 8.5 Elemen <httpErrors> tidak dimodifikasi dalam IIS 8.5.
IIS 8.0 Elemen <httpErrors> tidak dimodifikasi dalam IIS 8.0.
IIS 7.5 Atribut allowAbsolutePathsWhenDelegated ditambahkan ke <httpErrors> elemen di IIS 7.5
IIS 7.0 Elemen ini <httpErrors> diperkenalkan di IIS 7.0.
IIS 6.0 Elemen menggantikan <httpErrors> properti HttpErrors IIS 6.0 dari objek metabase IIsWebService .

Siapkan

Elemen <httpErrors> ini disertakan dalam penginstalan default IIS 7.

Bagaimana Caranya

Cara menambahkan halaman kesalahan kustom

  1. Buka Pengelola Layanan Informasi Internet (IIS):

    • Jika Anda menggunakan Windows Server 2012 atau Windows Server 2012 R2:

      • Pada bilah tugas, klik Manajer Server, klik Alat, lalu klik Pengelola Layanan Informasi Internet (IIS).
    • Jika Anda menggunakan Windows 8 atau Windows 8.1:

      • Tahan tombol Windows, tekan huruf X, lalu klik Panel Kontrol.
      • Klik Alat Administratif, lalu klik dua kali Manajer Layanan Informasi Internet (IIS).
    • Jika Anda menggunakan Windows Server 2008 atau Windows Server 2008 R2:

      • Pada bilah tugas, klik Mulai, arahkan ke Alat Administratif, lalu klik Pengelola Layanan Informasi Internet (IIS).
    • Jika Anda menggunakan Windows Vista atau Windows 7:

      • Pada taskbar, klik Mulai, lalu klik Panel Kontrol.
      • Klik dua kali Alat Administratif, lalu klik dua kali Manajer Layanan Informasi Internet (IIS).
  2. Di panel Koneksi , perluas nama server, perluas Situs, lalu navigasikan ke situs Web atau aplikasi yang ingin Anda konfigurasi halaman kesalahan kustomnya.

  3. Di panel Beranda , klik dua kali Halaman Kesalahan.
    Cuplikan layar yang memperlihatkan Halaman Kesalahan diklik dua kali.

  4. Di panel Tindakan , klik Tambahkan...

  5. Dalam kotak dialog Tambahkan Halaman Kesalahan Kustom , di bawah Kode status, ketikkan jumlah kode status HTTP yang ingin Anda buat pesan kesalahan kustomnya.
    Cuplikan layar yang memperlihatkan Halaman Tambahkan Kesalahan Kustom.

  6. Di bagian Tindakan Respons , lakukan salah satu hal berikut ini:

    • Pilih Sisipkan konten dari file statis ke dalam respons kesalahan untuk menyajikan konten statis, misalnya, file .html, untuk kesalahan kustom.
    • Pilih Jalankan URL di situs ini untuk menyajikan konten dinamis, misalnya, file .asp untuk kesalahan kustom.
    • Pilih Tanggapi dengan pengalihan 302 untuk mengalihkan browser klien ke URL lain yang berisi file kesalahan kustom.
  7. Dalam kotak teks Jalur file , ketik jalur halaman kesalahan kustom jika Anda memilih Sisipkan konten dari file statis ke dalam respons kesalahan atau URL halaman kesalahan kustom jika Anda menggunakan Jalankan URL di situs ini atau Tanggapi dengan pengalihan 302, lalu klik OK.

    Catatan

    Jika Anda memilih Jalankan URL di situs ini, jalur harus merupakan jalur relatif. Jika Anda memilih Tanggapi dengan pengalihan 302, URL harus berupa URL absolut.

Konfigurasi

Anda dapat mengonfigurasi <httpErrors> elemen di tingkat server dalam file ApplicationHost.config dan di tingkat situs dan aplikasi dalam file Web.config yang sesuai.

Atribut

Atribut Deskripsi
allowAbsolutePathsWhenDelegated Atribut Boolean opsional.

Ketika diatur ke true, jalur absolut diizinkan untuk halaman kesalahan kustom saat bagian <httpErrors> didelegasikan. Ketika diatur ke false, hanya jalur yang relatif terhadap akar situs yang diizinkan.

Nilai defaultnya adalah false.
defaultPath Atribut string opsional.

Menentukan jalur default halaman kesalahan kustom. Jenis jalur ditentukan oleh atribut defaultResponseMode . Jika Anda memilih File, jalur file dikembalikan. Jika Anda memilih jenis jalur ExecuteURL atau Pengalihan , URL halaman kesalahan kustom akan dikembalikan.
defaultResponseMode Atribut enum opsional.

Menentukan bagaimana konten kesalahan kustom dikembalikan.

Atribut defaultResponseMode dapat menjadi salah satu nilai berikut; defaultnya adalah File.
Nilai Deskripsi
File Menyajikan konten statis, misalnya, file .html untuk kesalahan kustom. Jika responseMode diatur ke File, nilai jalur harus berupa jalur file.

Nilai numerik adalah 0.
ExecuteURL Menyajikan konten dinamis, misalnya, file .asp untuk kesalahan kustom. Jika responseMode diatur ke ExecuteURL, nilai jalur harus menjadi URL relatif server.

Nilai numerik adalah 1.
Redirect Mengalihkan browser klien ke URL lain yang berisi file kesalahan kustom. Jika responseMode diatur ke Pengalihan, nilai jalur harus menjadi URL absolut.

Nilai numerik adalah 2.
detailedMoreInformationLink Atribut string opsional.

Menentukan tautan, yang diperlihatkan di bagian bawah halaman, ke halaman dengan informasi yang lebih rinci tentang kesalahan tertentu. Anda dapat menggunakan properti ini untuk mengarahkan pengguna akhir ke lokasi kustom untuk informasi kesalahan. Status, sub-status, HRESULT, dan ID pesan dikirim sebagai bagian dari string kueri.

Nilai defaultnya adalah https://go.microsoft.com/fwlink/?LinkID=62293.
errorMode Atribut enum opsional.

Menentukan apakah kesalahan HTTP diaktifkan.

Atribut errorMode dapat menjadi salah satu nilai berikut; defaultnya adalah DetailedLocalOnly.
Nilai Deskripsi
DetailedLocalOnly Mengembalikan informasi kesalahan terperinci jika permintaan berasal dari komputer lokal, dan mengembalikan pesan kesalahan kustom jika permintaan berasal dari komputer eksternal.

Nilai numerik adalah 0.
Custom Mengganti kesalahan yang dihasilkan modul atau server dengan halaman kustom yang Anda tentukan. Mode ini berguna dalam memberikan pesan kesalahan yang lebih ramah kepada pengguna akhir.

Catatan: Pengaturan ini menonaktifkan kesalahan terperinci, bahkan untuk permintaan lokal.

Nilai numerik adalah 1.
Detailed Mengirim informasi kesalahan terperinci kembali ke klien. Mode ini berguna untuk menguji dan men-debug situs web dan aplikasi.

Nilai numerik adalah 2.
existingResponse Atribut enum opsional.

Menentukan apa yang terjadi pada respons yang ada ketika kode status HTTP adalah kesalahan, yaitu kode >respons = 400.

Atribut existingResponse dapat menjadi salah satu nilai berikut; defaultnya adalah Auto.
Nilai Deskripsi
Auto Membiarkan respons tidak tersentuh hanya jika bendera SetStatus diatur.

Nilai numerik adalah 0.
Replace Menggantikan respons yang ada meskipun bendera SetStatus diatur.

Nilai numerik adalah 1.
PassThrough Membiarkan respons tidak tersentuh jika ada respons yang ada.

Nilai numerik adalah 2.

Elemen Anak

Elemen Deskripsi
error Elemen opsional.

Menambahkan kesalahan HTTP ke kumpulan kesalahan HTTP.
remove Elemen opsional.

Menghapus referensi ke kesalahan HTTP dari kumpulan kesalahan HTTP.
clear Elemen opsional.

Menghapus semua referensi ke kesalahan HTTP dari kumpulan kesalahan HTTP.

Sampel Konfigurasi

Contoh konfigurasi berikut, ketika disertakan dalam file Web.config untuk situs Web atau aplikasi, menggunakan atribut errorMode untuk hanya mengizinkan pesan kesalahan terperinci muncul di komputer lokal. Ini juga menggunakan atribut defaultResponseMode untuk mengatur mode respons untuk situs atau aplikasi. Sampel kemudian menghapus pesan kesalahan yang diwariskan untuk kode status 500. Selanjutnya, ia mengatur atribut prefixLanguageFilePath ke direktori tempat IIS harus mencari halaman kesalahan kustom baru, dan mengatur atribut jalur ke 500.htm, file yang berisi pesan kesalahan kustom.

<configuration>
   <system.webServer>
      <httpErrors errorMode="DetailedLocalOnly" defaultResponseMode="File" >
         <remove statusCode="500" />
         <error statusCode="500"
            prefixLanguageFilePath="C:\Contoso\Content\errors"
            path="500.htm" />
       </httpErrors>
   </system.webServer>
</configuration>

Kode Sampel

Contoh berikut menambahkan file baru untuk semua kesalahan kode status 404 dengan substatus 5, yang dikembalikan IIS untuk kesalahan "Urutan URL Ditolak". Dalam contoh ini, jalur awalan diatur ke "%SystemDrive%\inetpub\custerr", dan nama file ditentukan sebagai "404.5.htm".

AppCmd.exe

appcmd.exe set config -section:system.webServer/httpErrors /+"[statusCode='404',subStatusCode='5',prefixLanguageFilePath='%SystemDrive%\inetpub\custerr',path='404.5.htm']" /commit:apphost

Catatan

Anda harus memastikan untuk mengatur parameter penerapan ke apphost saat Anda menggunakan AppCmd.exe untuk mengonfigurasi pengaturan ini. Ini menerapkan pengaturan konfigurasi ke bagian lokasi yang sesuai dalam file ApplicationHost.config.

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetApplicationHostConfiguration();
         ConfigurationSection httpErrorsSection = config.GetSection("system.webServer/httpErrors");
         ConfigurationElementCollection httpErrorsCollection = httpErrorsSection.GetCollection();

         ConfigurationElement errorElement = httpErrorsCollection.CreateElement("error");
         errorElement["statusCode"] = 404;
         errorElement["subStatusCode"] = 5;
         errorElement["prefixLanguageFilePath"] = @"%SystemDrive%\inetpub\custerr";
         errorElement["path"] = @"404.5.htm";
         httpErrorsCollection.Add(errorElement);

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration
      Dim httpErrorsSection As ConfigurationSection = config.GetSection("system.webServer/httpErrors")
      Dim httpErrorsCollection As ConfigurationElementCollection = httpErrorsSection.GetCollection

      Dim errorElement As ConfigurationElement = httpErrorsCollection.CreateElement("error")
      errorElement("statusCode") = 404
      errorElement("subStatusCode") = 5
      errorElement("prefixLanguageFilePath") = "%SystemDrive%\inetpub\custerr"
      errorElement("path") = "404.5.htm"
      httpErrorsCollection.Add(errorElement)

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var httpErrorsSection = adminManager.GetAdminSection("system.webServer/httpErrors", "MACHINE/WEBROOT/APPHOST");
var httpErrorsCollection = httpErrorsSection.Collection;

var errorElement = httpErrorsCollection.CreateNewElement("error");
errorElement.Properties.Item("statusCode").Value = 404;
errorElement.Properties.Item("subStatusCode").Value = 5;
errorElement.Properties.Item("prefixLanguageFilePath").Value = "%SystemDrive%\\inetpub\\custerr";
errorElement.Properties.Item("path").Value = "404.5.htm";
httpErrorsCollection.AddElement(errorElement);

adminManager.CommitChanges();

Vbscript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set httpErrorsSection = adminManager.GetAdminSection("system.webServer/httpErrors", "MACHINE/WEBROOT/APPHOST")
Set httpErrorsCollection = httpErrorsSection.Collection

Set errorElement = httpErrorsCollection.CreateNewElement("error")
errorElement.Properties.Item("statusCode").Value = 404
errorElement.Properties.Item("subStatusCode").Value = 5
errorElement.Properties.Item("prefixLanguageFilePath").Value = "%SystemDrive%\inetpub\custerr"
errorElement.Properties.Item("path").Value = "404.5.htm"
httpErrorsCollection.AddElement errorElement

adminManager.CommitChanges()