Xin chào tất cả, tôi dường như đã tìm thấy sự khác biệt khi thử nghiệm các ứng dụng ASP.NET cục bộ trên máy chủ web tích hợp với Visual Studio 2008 (Cassini).Tại sao yêu cầu ["host"] == "dev.testhost.com:1234" trong khi Request.Url.Host == "localhost"
tôi đã thiết lập một máy chủ trên máy tính địa phương của tôi gắn dev.testhost.com với 127.0.0.1, kể từ khi tôi có một ứng dụng mà cần phải thay đổi diện mạo của nó tùy thuộc vào tiêu đề máy chủ sử dụng để gọi nó.
Tuy nhiên, khi tôi yêu cầu đơn đăng ký thử nghiệm của mình sử dụng http://dev.testhost.com:1234/index.aspx
, giá trị của Request.Url.Host
luôn là "localhost"
. Trong khi giá trị của Request.Headers["host"]
là "dev.testhost.com:1234"
(như tôi mong đợi chúng cả hai là).
Tôi KHÔNG lo ngại rằng giá trị thứ hai bao gồm các số cổng, nhưng tôi hùng mạnh bối rối là tại sao TÊN HOST là hoàn toàn khác nhau! Có ai biết nếu đây là một vấn đề được biết, hoặc bằng cách thiết kế? Hay tôi là một thằng ngốc ?!
Tôi muốn sử dụng
- Đã bị xóa do có thể gây nhầm lẫn! - SamRequest.Url.Host
, vì điều đó tránh phải loại bỏ số cổng khi thử nghiệm ...
Từ tài liệu MSDN có vẻ như Request.Url phải được quan tâm với yêu cầu được gửi đến máy chủ. Trích dẫn từ http://msdn.microsoft.com/en-us/library/system.web.httprequest.aspx ... > ** HttpRequest Class ** > Cho phép ASP.NET đọc các giá trị HTTP được gửi bởi một khách hàng trong một yêu cầu Web. Đó không phải là những gì có vẻ như đang diễn ra khi chạy trong Cassini ... Cảm ơn câu trả lời cho đến nay, nhưng tôi thực sự không tin rằng có bất kỳ lý do chính đáng nào cho tên máy chủ được báo cáo khác nhau cho cùng một yêu cầu đối tượng ... –