为什么 HttpContext.Request.Url 和 Request.ServerVariables[“HTTP_HOST”] 返回不同的值

发布于 2024-10-07 04:32:31 字数 474 浏览 7 评论 0原文

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

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

有人有什么想法吗?

现场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

I have 3 websites that run from a load-balanced pool of servers. Load-balancer uses sticky sessions to ensure that session stays on initial pool.

In the website, I need to generate a url specific to the website. As per standard procedure I tried to use HttpContext.Request.Url, but this returns the wrong url. I then tried to use Request.ServerVariables["HTTP_HOST"] and that returns the correct url.

Does anyone have any ideas?

On Site A:
Request.Url returns Url A
Request.ServerVariables["HTTP_HOST"] returns Url A

On Site B:

Request.Url returns Url A
Request.ServerVariables["HTTP_HOST"] returns Url B

On Site C:

Request.Url returns Url A
Request.ServerVariables["HTTP_HOST"] returns Url C

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

红ご颜醉 2024-10-14 04:32:31

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

编辑:关于这一点,我很困惑为什么你需要“特定于网站的网址”?

Request.ServerVariables["HTTP_HOST"] return IIS host, i.e. the host name your website is set to respond to. That may or may not be the same host as in URL client executed to get to your page. The behavior you see is totally logical since client always executes the same URL, but the load balancer send it to different IIS instances.

edit: on that note I am confused as to why would you need to have "a url specific to the website"?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文