2011-01-05 26 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”。它解决了我的问题。

感谢, 拉吉

相关问题