Tôi đã nhận thấy hành vi kỳ lạ trong các trang lỗi IIS. Tôi đã có thiết lập này:
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="500" />
<error statusCode="500" responseMode="ExecuteURL" path="/error-page" />
</httpErrors>
Đôi khi xảy ra lỗi ASP.NET do chuỗi truy vấn quá dài, ngay lập tức lỗi thứ hai xảy ra trong khi cố gắng thực thi URL trang lỗi. Tôi đã theo dõi vấn đề với thực tế là IIS sẽ thêm url gốc vào url của trang lỗi như:
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
Đây là một vấn đề rất lớn. Nếu url ban đầu không thành công vì có chuỗi truy vấn quá lâu thì trang lỗi với nội dung được nối cũng bị lỗi vì nó có chuỗi truy vấn thậm chí còn dài hơn!
Tôi tin rằng đây là lỗi ngu ngốc nhất trong IIS. Có ai biết nếu có một số bản vá của gói dịch vụ cho điều đó? Trường hợp xấu nhất nếu không có gì được khắc phục ngay bây giờ, có cách nào để vô hiệu hóa hành vi này hoặc bất kỳ thủ thuật nào để ngăn chặn IIS thêm các nội dung không được yêu cầu vào trang lỗi không? Bởi vì nó phá vỡ toàn bộ cơ chế trang lỗi tùy chỉnh.