【问题标题】:why does HttpContext.Request.Url and Request.ServerVariables["HTTP_HOST"] return different values为什么 HttpContext.Request.Url 和 Request.ServerVariables["HTTP_HOST"] 返回不同的值
【发布时间】:2010-12-12 00:12:26
【问题描述】:

我有 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

【问题讨论】:

    标签: c# url httprequest request.servervariables


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-09-30
      • 2014-05-23
      • 2014-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-09
      • 2019-12-02
      • 1970-01-01
      相关资源
      最近更新 更多