Saya perhatikan perilaku aneh di halaman kesalahan IIS. Saya punya pengaturan ini:
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="500" />
<error statusCode="500" responseMode="ExecuteURL" path="/error-page" />
</httpErrors>
Kadang-kadang ketika kesalahan ASP.NET terjadi karena string kueri terlalu panjang, maka segera kesalahan kedua terjadi saat mencoba menjalankan URL halaman kesalahan. Saya telah melacak masalahnya dengan fakta bahwa IIS menambahkan url asli ke url halaman kesalahan seperti:
Original: http://example.com/someurl?id=some_very_long_query_string_causing_security_exception
Error: /error-page?500;http://example.com/someurl?id=some_very_long_query_string_causing_security_exception
Ini masalah besar. Jika url asli gagal karena memiliki string kueri terlalu lama maka halaman kesalahan dengan hal-hal yang ditambahkan gagal juga karena memiliki string kueri yang bahkan lebih lama!
Saya percaya ini adalah bug paling bodoh di IIS. Adakah yang tahu kalau ada paket layanan untuk itu? Skenario kasus terburuk jika tidak ada yang diperbaiki sekarang, apakah ada cara untuk menonaktifkan perilaku ini atau trik untuk menghentikan IIS menambahkan hal-hal yang tidak diminta ke halaman kesalahan? Karena itu merusak seluruh mekanisme halaman kesalahan kustom.
Jawaban:
Menambahkan garis miring trailing ke path (mis. Path = "/ error-page /") akan menghentikan kode kesalahan dan URL ditambahkan, perhatikan bahwa itu akan menjaga URL gagal yang asli, misalnya
sumber
Saya memiliki masalah yang sama sejak lama, sistem yang dimaksud menggunakan halaman kesalahan statis karenanya.
Anda dapat mengaturnya di defaultResponseMode ke file yang akan menyajikan kembali satu halaman statis.
Skema Pengaturan Elemen IIS httpErrors
Ada juga masalah serupa di sini
sumber