2010-12-12 56 views
0

我有3个从负载平衡的服务器池运行的网站。负载平衡器使用粘性会话来确保会话保持在初始池中。为什么HttpContext.Request.Url和Request.ServerVariables [“HTTP_HOST”]返回不同的值

在网站中,我需要生成特定于网站的网址。按照标准程序,我尝试使用HttpContext.Request.Url,但是这返回了错误的URL。然后我尝试使用Request.ServerVariables [“HTTP_HOST”]并返回正确的url。

有没有人有任何想法?

在站点A: Request.Url返回的URL Request.ServerVariables [ “HTTP_HOST”]返回地址甲

在站点B:

Request.Url返回地址甲 Request.ServerVariables [ “HTTP_HOST”]返回地址乙

现场C:

Request.Url返回的URL Request.ServerVariables [ “HTTP_HOST”]返回地址C

回答

0

Request.ServerVariables["HTTP_HOST"]返回IIS主机,即您的网站设置为响应的主机名称。这可能是也可能不是在URL客户端执行到您的网页相同的主机。您看到的行为完全合乎逻辑,因为客户端始终执行相同的URL,但负载均衡器会将其发送到不同的IIS实例。

编辑:在那个笔记我很困惑,为什么你需要有“网址特定的网址”?

相关问题