IIS httpErrors ExecuteURL menambahkan string kueri aneh seperti 500; http: //mysite.com/failed- halaman ke URL target

8

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.

kelinci
sumber
Pak, saya menghadapi masalah yang sama. Apakah Anda menyelesaikannya?
Denis,
1
+1 Saya telah mengajukan pertanyaan yang sama tentang StackOverflow di sini . Senang jawaban.
Muhammad Rehan Saeed

Jawaban: