0

我有 3 个从负载平衡的服务器池运行的网站。负载均衡器使用粘性会话来确保会话保持在初始池中。

在网站中,我需要生成一个特定于网站的 url。根据标准程序,我尝试使用 HttpContext.Request.Url,但这会返回错误的 url。然后我尝试使用 Request.ServerVariables["HTTP_HOST"] 并返回正确的 url。

有没有人有任何想法?

在站点 A 上:Request.Url 返回 Url A Request.ServerVariables["HTTP_HOST"] 返回 Url A

B站:

Request.Url 返回 Url A Request.ServerVariables["HTTP_HOST"] 返回 Url B

在站点 C:

Request.Url 返回 Url A Request.ServerVariables["HTTP_HOST"] 返回 Url C

4

1 回答 1

0

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

编辑:在那张纸条上,我很困惑为什么您需要“特定于网站的网址”?

于 2010-12-12T05:13:15.863 回答