Đối với bất kỳ URL nào có dấu cộng (+) trong URL cơ sở (không phải chuỗi truy vấn), IIS7 và IIS7.5 (Windows Server 2008 và 2008 R2) sẽ không xuất hiện để chuyển URL tới trình xử lý mặc định trên ứng dụng ASP.NET . Tôi bắt đầu nhận thấy vấn đề với trình xử lý HTTP tùy chỉnh trên *.html
nhưng tôi có cùng vấn đề với *.aspx
. IIS6 (Server 2003) không có vấn đề với các URL tương tự.
Để tái tạo vấn đề, trong một trang web ASP.NET, tôi đã tạo một tập hợp các tệp ASPX thực hiện một Phản hồi đơn giản. Viết với nhiều tên khác nhau:
- test_s Something.aspx
- test_some + thing.aspx
- test_some điều.aspx
Tệp thứ ba là một thử nghiệm để xem liệu IIS7 [.5] có coi các ký hiệu cộng là khoảng trắng không (như trong chuỗi truy vấn); Điều này không xuất hiện để được các trường hợp. Với tất cả các tệp này, việc nhấn http://somehost/test_some+thing.aspx
hoặc http://somehost/test_some%2bthing.aspx
sẽ hoạt động tốt trong IIS6 nhưng 404 trong IIS7 / IIS7.5 trước khi truy cập bất kỳ trình xử lý ASP.NET nào. Có một số cấu hình trong IIS7 / 7.5 mà tôi bị thiếu để làm cho nó "nhìn thấy" một dấu cộng trong URL mà không bỏ lỡ tiện ích mở rộng cuối cùng được sử dụng để xác định trình xử lý HTTP không?
\+
nào?