2011-01-05 2 views
5

Angenommen, ich habe eine Remote-Seite über http://www.mypage.com/test.aspx zugegriffen. Auf dieser Seite verwende ich den Code Request.ServerVariables ["HTTP_HOST"]. ToString(). Ist es möglich, dass der Code beim Zugriff auf die Seite eine andere URL zurückgeben kann als die, die ich in der URL-Leiste sehe, die http://www.mypage.com/test.aspx ist? Jede Hilfe wäre willkommen. Vielen Dank.Ist es möglich, dass Request.ServerVariables ["HTTP_HOST"]. ToString() einen anderen Host als was ich in der URL-Leiste anzeigen kann

+0

Entschuldigung? Was ist der Unterschied zwischen diesen Werten? –

+0

Ich versuche, eine Remote-Site zu debuggen, in der ich keinen Zugriff auf den Server habe. Auf einer der Seiten versucht es mit dem oben angegebenen Code, eine Datei zu öffnen. Leider, wenn es versucht, die Datei zu öffnen, kann es nicht finden, und ich frage mich, ob es wegen des obigen Codes sein könnte. Ich habe bereits überprüft und die Datei befindet sich auf dem Server. – Ben

+0

Wenn ich versuche, eine Datei auf dem Server zu öffnen, verwende ich normalerweise Server.MapPath ["."], Um den Pfad zum aktuellen Ordner (auf dem Server) abzurufen. – tgolisch

Antwort

3

Sie können einen beliebigen Namen sehen, den IIS an Ihre Webinstanz gebunden hat. Wenn Ihr Server also "server1" heißt und die IP-Adresse 123.123.123.123 lautet und alle drei an Ihre Instanz von IIS gebunden sind, können Sie alle diese Werte sehen.

Um zu sehen, welche Namen gebunden sind, öffnen Sie "Internetinformationsdienste (IIS) Manager" (Start, Verwaltungstools), erweitern Sie die Struktur, bis Sie Ihre Websites sehen. Finde den, den du benutzt. Klicken Sie mit der rechten Maustaste und wählen Sie "Bindungen". Bearbeiten Sie jede der Bindungen in der Liste. Wenn alle [IP-Adresse:] "Alle nicht zugewiesen" sagen, könnte Ihr HTTP_HOST 1. die WWW-Adresse sein, die Sie über DNS konfiguriert haben, 2. der Computername 3. die IP-Adresse (n).

0

Es ist möglich, ja. Ein isapi_rewrite-Modul könnte den Wert von HTTP_HOST ändern, bevor Ihr eigener Code es prüfen kann.

+0

Wissen Sie, ob es möglich ist, dass mein Code ausgeführt werden könnte und die URL vor dem isapi_rewrite abrufen würde? – Ben

+0

Welche Version von IIS? – Amy

+0

Ich denke, sie verwenden IIS6 – Ben

1

versuchen zu nutzen:

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

ich hoffe, dass diese Arbeit sein wird.

0

Jemand hat bereits lokale Rewriter (isapi_rewrite) erwähnt, aber es gibt auch entfernte, wie einen ISA Server, der Ihren Server veröffentlicht. Es ist ein Konfigurations-Ding, um originale Host-Header zu senden (was der Client eingegeben hat) oder die, die in den Veröffentlichungseinstellungen eingegeben wurden.

1

Ich war auch mit dem Problem mit HttpContext.Current.Request.ServerVariables ["HTTP_HOST"] konfrontiert und fand es heraus. Die beste Methode, den Hostnamen abzurufen, ist "HttpContext.Current.Request.Url.Host". Es hat mein Problem gelöst.

Danke, Raj

Verwandte Themen