2011-01-05 8 views
5

Giả sử tôi có một trang từ xa được truy cập thông qua http://www.mypage.com/test.aspx. Trên trang đó tôi sử dụng mã Request.ServerVariables ["HTTP_HOST"]. ToString(). Có thể khi tôi truy cập vào trang, mã có thể trả lại một url khác với địa chỉ mà tôi thấy trong thanh url là http://www.mypage.com/test.aspx? Bất kỳ trợ giúp sẽ được đánh giá cao. Cảm ơn.Có thể là Request.ServerVariables ["HTTP_HOST"]. ToString() có thể trả lại một máy chủ khác với những gì tôi thấy trong thanh url

+0

xin lỗi? sự khác biệt giữa các giá trị này là gì? –

+0

Tôi đang cố gắng gỡ lỗi một trang web từ xa mà tôi không có quyền truy cập vào máy chủ. trên một trong các trang sử dụng mã được chỉ định ở trên để thử mở tệp. Thật không may khi nó cố gắng để mở tập tin nó không thể tìm thấy nó, và tôi tự hỏi nếu nó có thể là do mã ở trên. Tôi đã kiểm tra và tệp trên máy chủ. – Ben

+0

Khi tôi đang cố mở một tệp trên máy chủ, tôi thường sử dụng Server.MapPath ["."] Để nhận đường dẫn đến thư mục hiện tại (trên máy chủ). – tgolisch

Trả lời

3

Bạn có thể thấy bất kỳ tên nào mà IIS đã ràng buộc với cá thể trên web của bạn. Vì vậy, nếu máy chủ của bạn được gọi là "server1" và địa chỉ IP là 123.123.123.123 và tất cả ba trong số đó được ràng buộc với cá thể IIS của bạn, bạn có thể thấy bất kỳ giá trị nào trong số đó.

Để tra cứu tên nào bị ràng buộc, hãy mở "Trình quản lý dịch vụ thông tin Internet (IIS)" (bắt đầu, công cụ quản trị), mở rộng cây cho đến khi bạn thấy trang web của mình. Tìm cái bạn đang sử dụng. Nhấp chuột phải và chọn "Bindings". Chỉnh sửa từng liên kết trong danh sách. Nếu tất cả đều nói [địa chỉ IP:] "All Unassigned", thì HTTP_HOST của bạn có thể là 1. địa chỉ WWW mà bạn đã cấu hình thông qua DNS, 2. tên máy 3. địa chỉ IP (es).

0

Có thể, có. Mô-đun isapi_rewrite có thể sửa đổi giá trị của HTTP_HOST trước khi mã của riêng bạn có thể kiểm tra nó.

+0

bạn có biết rằng có thể mã của tôi có thể đang chạy và lấy url trước isapi_rewrite không? – Ben

+0

Phiên bản IIS nào? – Amy

+0

Tôi nghĩ rằng họ sử dụng IIS6 – Ben

1

cố gắng sử dụng:

HttpContext.Current.Request.ServerVariables["SERVER_NAME"]

tôi hy vọng rằng đây sẽ là công việc.

0

Ai đó đã đề cập đến những người viết lại cục bộ (isapi_rewrite), nhưng cũng có những từ xa, như ISA Server xuất bản máy chủ của bạn. Đó là một điều chỉnh cấu hình để gửi các tiêu đề máy chủ gốc (những gì khách hàng đã nhập) hoặc các tiêu đề được nhập trong cài đặt xuất bản.

1

Tôi cũng đang gặp sự cố với HttpContext.Current.Request.ServerVariables ["HTTP_HOST"] và đã tìm ra. Cách tốt nhất để lấy tên máy chủ là "HttpContext.Current.Request.Url.Host". Nó đã giải quyết vấn đề của tôi.

Xin cảm ơn, Raj