Tôi đã kế thừa ứng dụng web ASP.NET được viết bằng C#. Ở nhiều trang trong trang web tên máy được lấy bằng:Yêu cầu.Url.Host so với Yêu cầu.Url.Authority
BaseHost = Request.Url.Host;
Kể từ khi tôi đang sử dụng Visual Studio 2012 Express và nó được cài đặt máy chủ IIS tốc địa phương, tôi dường như bị mắc kẹt với một số cổng nối vào hostname (localhost) khi tôi gỡ lỗi/chạy cục bộ. Đoạn mã trên không dẫn đến số cổng được bao gồm và các liên kết ngắt như vậy được tạo bởi mã (liên kết mục menu, chuyển hướng, v.v.).
tôi thấy rằng tôi có thể khắc phục vấn đề này bằng cách thay đổi mã để:
BaseHost = Request.Url.Authority;
này dường như để sửa chữa nó bằng cách bao gồm các cổng khi tôi đang chạy cục bộ (localhost: 4652) và khi xuất bản của tôi máy chủ dàn dựng (development.mysite.com).
Câu hỏi của tôi: Biểu mẫu này có tệ không? Có một thời gian hoặc một tình huống trong đó điều này sẽ gây ra vấn đề trên trang web trực tiếp của tôi? Nó chỉ có vẻ dễ dàng hơn nhiều để làm một thay thế nhanh chóng của tất cả các trường hợp này. Tôi đã xem xét viết một thói quen nhỏ để nối thêm : with Request.Url.Port
, nhưng có vẻ dễ dàng hơn khi sử dụng Request.Url.Authority
. Quá dễ dàng có thể ...
Tôi đã cố gắng nghiên cứu câu hỏi của mình trực tuyến và tại MSDN, nhưng tôi không thấy câu trả lời.
Một nghi ngờ nhỏ. nếu tôi chạy các ứng dụng trong localhost tôi có số cổng trong URL của tôi nhưng trong sản xuất tôi không có số cổng trong URL. Vì vậy, tôi có thể tự do sử dụng Url.Authority phải không? Tôi có nghĩa là nếu số cổng không có thì URl.Authority sẽ hành động giống như URL.Host đúng. Tôi có nghĩa là tôi vẫn có thể lấy URL đúng cách? xin vui lòng hướng dẫn cho tôi,. – Unbreakable