为什么Request.ServerVariables [“HTTP_HOST”]与Request.Url.Host不同?

时间:2012-06-01 14:45:36

标签: c# asp.net

相同的服务器,相同的网站 - 两种不同的结果。

案例1

请求网址:domain.com(解析为domain.com/default.aspx)
Firebug中的请求标头:domain.com
Request.ServerVariables["HTTP_HOST"] = domain.com
Request.Url.Host = domain.com(好的,这很好,也很期待)

案例2

请求网址:domain.com/default.aspx
Firebug中的请求标头:domain.com
Request.ServerVariables["HTTP_HOST"] = domain.com
Request.Url.Host = app5 (服务器名称)

看两个请求,我看不到任何可能导致这种情况的请求。为什么会出现这种情况?
服务器正在运行Windows 2003和IIS6。

1 个答案:

答案 0 :(得分:2)

您应该检查IIS元数据库是否设置为使用主机名或其他名称

命令 - > cscript adsutil.vbs get W3SVC/SITE-ID/USEHOSTNAME

结果 - >应该是

The parameter "USEHOSTNAME" is not set at this node.

USEHOSTNAME : (BOOLEAN) False

命令 - > cscript adsutil.vbs get W3SVC/SITE-ID/SETHOSTNAME

结果 - >应该是

The parameter "SETHOSTNAME" is not set at this node.

SETHOSTNAME : (STRING) ""

使用网站的数字ID更改SITE-ID。

如果您看到任何其他结果,则表示有人修改了网站的上述两个属性。