Apa perbedaan antara bagian customErrors
dan httpErrors
file web.config dalam aplikasi ASP.NET MVC?
Apa pedoman untuk menggunakan setiap bagian?
web-config
iis-7.5
Alan T
sumber
sumber
Jawaban:
Penafian: Ini dari pengalaman saya dan bukan fakta yang terbukti.
Keduanya digunakan untuk mendefinisikan penanganan kesalahan untuk suatu situs web, tetapi perangkat lunak yang berbeda merujuk pada elemen konfigurasi yang berbeda.
customErrors
adalah elemen legacy (backwards compatable), yang digunakan oleh Visual Studio Development Server (alias. VSDS atau Cassini).httpErrors
adalah elemen baru yang hanya digunakan oleh IIS7.Ini menyoroti masalah yang mungkin terjadi ketika mengembangkan situs web ASP.NET saat menggunakan VSDS, bukan IIS lokal.
Juga, lihat posting ini sendiri tentang bagaimana menangani pesan kesalahan dengan IIS7, jika Anda ingin memiliki kontrol penuh terhadap output kesalahan.
Ringkasan:
VSDS
digunakancustomErrors
IIS6
digunakancustomErrors
IIS7
digunakanhttpErrors
.dan jika Anda berkembang dengan
VSDS
tetapi menerbitkanIIS7
, maka saya kira Anda akan membutuhkan keduanya.sumber
* Diperbarui April 2016
Atribut customErrors digunakan ketika kode .net melempar pengecualian (404, 403, 500 dll) dan atribut httpErrors digunakan ketika IIS sendiri melempar pengecualian.
Ada banyak jebakan mencoba mengkonfigurasi ini dengan benar. Jadi jika Anda mencari contoh cepat, 2 opsi terbaik yang Anda miliki adalah:
Contoh 1: Menggunakan halaman html
Contoh 2: menggunakan halaman aspx
Dan di halaman kesalahan aspx Anda perlu melakukan sesuatu seperti ini (contoh halaman 404):
Catatan: Menggunakan sedikit ekstensi url di bagian customErrors tidak dimungkinkan! . (tanpa peretasan)
Salah satu penyelesaiannya adalah untuk menonaktifkan kesalahan khusus dan membiarkan kesalahan http menangani halaman kustom. Seorang teman telah membuat pengaturan seperti itu, ketika saya menemukan waktu, saya akan membagikan kodenya.
Latar Belakang
Halaman kesalahan khusus yang baik akan:
Jadi untuk memperjelas beberapa opsi dalam konfigurasi kami:
<customErrors mode="RemoteOnly"
. Anda dapat menentukan sini:On
,Off
,RemoteOnly
.On
= Selalu tampilkan halaman kesalahan khususOff
= Selalu menunjukkan kesalahan nyataRemoteOnly
= Tampilkan kesalahan secara lokal, tetapi tampilkan halaman kesalahan khusus dari jarak jauh. Jadi kami inginRemoteOnly
untuk pernyataan 1<customErrors redirectMode="ResponseRewrite"
. Anda dapat menentukan di sini:ResponseRedirect
atauResponseRewrite
. TheResponseRedirect
modus akan mengarahkan halaman kesalahan ke halaman kesalahan kustom. Untuk perayap tautan (SEO), ini akan menghasilkan 302 -> 500, tetapi Anda ingin perayap tautan mendapatkan 500 kesalahan.<httpErrors errorMode="DetailedLocalOnly"
. Ini setara dengancustomErrors
mode. Pilihan yang Anda miliki:Custom
,Detailed
,DetailedLocalOnly
.Posting blog bagus yang banyak membantu saya adalah: http://benfoster.io/blog/aspnet-mvc-custom-error-pages
sumber
<customErrors>
melawan<httpErrors>
<customErrors>
<httpErrors>
Sumber kutipan: Kustom 404 dan halaman kesalahan di ASP.NET (artikel bagus)
ExecuteURL
menyajikan konten dinamis seperti halaman .aspx (path
nilainya harus URL relatif server ):File
melayani file kesalahan khusus, seperti halaman .html:Referensi: Kesalahan HTTP (www.iis.net)
untuk lebih jelasnya, baca tautan www.iis.net di atas
sumber
it's no loger necesary to use customErrors
dan kutipan, ini benar-benar info yang saya cari :-)Bagian kesalahan dalam konfigurasi web adalah untuk menyediakan pendekatan penanganan kesalahan http kustom ada dua bagian, satu customErrors di dalam bagian system.web dan satu lagi httpErrors di dalam bagian system.webServer (seperti yang diberikan di bawah ini)
customErrors: Bagian ini digunakan sebelum IIS 7 diperkenalkan, IIS 6 5 dan sebelum sepenuhnya menggunakan bagian ini untuk menangani kesalahan http kustom sesuai dengan kode status http.
httpErrors: IIS 7 dan kemudian menggunakan bagian ini serta bagian customErrors untuk menangani kesalahan http kustom berdasarkan ekstensi file mereka jika diminta ekstensi halaman mendaftar dengan ISAPI dll (.aspx, ashx, .asmx, .svc dll) seperti index.aspx lalu Pengaturan pengambilan IIS dari bagian customeErrors kalau tidak, pengaturan pengambilan dari httpErrors (mode yang dihosting IIS 7 harus diatur sebagai suasana hati yang terintegrasi bukan klasik)
di bawah ini adalah contoh untuk 404 tautan cek penanganan kesalahan:
httperrors vs customerrors di webconfig, iis, asp.net
sumber