2011-01-05 53 views
5

假設我有一個通過http://www.mypage.com/test.aspx訪問的遠程頁面。在該頁面上,我使用代碼Request.ServerVariables [「HTTP_HOST」]。ToString()。有可能當我訪問頁面時,代碼可能會返回一個不同於我在url欄中看到的url,它是http://www.mypage.com/test.aspx?任何幫助,將不勝感激。謝謝。是否有可能Request.ServerVariables [「HTTP_HOST」]。ToString()可以返回一個不同於我在url欄中看到的主機

+0

遺憾?這個值有什麼區別? – 2011-01-05 20:38:21

+0

我正在嘗試調試一個遠程站點,其中我沒有訪問該服務器的權限。在其中一個頁面上,它使用上面指定的代碼嘗試打開文件。不幸的是,當它試圖打開文件時,它找不到它,我想知道是否可能是由於上面的代碼。我已經檢查過該文件在服務器上。 – Ben 2011-01-05 20:44:52

+0

當我試圖打開服務器上的文件時,我通常使用Server.MapPath [「。」]來獲取當前文件夾(在服務器上)的路徑。 – tgolisch 2011-01-05 21:02:29

回答

3

您可以看到IIS已綁定到您的Web實例的任何名稱。所以,如果你的服務器被稱爲「server1」,並且IP地址是123.123.123.123,並且所有這三個綁定到你的IIS實例,你可以看到任何這些值。

要查看要綁定的名稱,請打開「Internet信息服務(IIS)管理器」(啓動,管理工具),展開樹,直到看到您的網站。找到你正在使用的那個。右鍵單擊並選擇「綁定」。編輯列表中的每個綁定。如果他們都說[IP地址:]「All Unassigned」,那麼您的HTTP_HOST可能是1.您通過DNS配置的WWW地址,2.機器名稱3. IP地址。

0

這是可能的,是的。 A isapi_rewrite模塊可以在您自己的代碼能夠檢查它之前修改HTTP_HOST的值。

+0

您是否知道我的代碼可能正在運行並在isapi_rewrite之前抓取url? – Ben 2011-01-05 20:47:11

+0

什麼版本的IIS? – Amy 2011-01-05 21:00:18

+0

我認爲他們使用IIS6 – Ben 2011-01-05 21:10:56

1

嘗試使用:

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

我希望這將是工作。

0

有人已經提到了本地重寫器(isapi_rewrite),但也有遠程的,比如發佈服務器的ISA Server。發送原始主機頭文件(客戶端輸入的內容)或在發佈設置中輸入的頭文件是一種配置方式。

1

我還面臨HttpContext.Current.Request.ServerVariables [「HTTP_HOST」]的問題,並找出它。檢索主機名的最好方法是「HttpContext.Current.Request.Url.Host」。它解決了我的問題。

感謝, 拉吉

相關問題