我有3个从负载均衡的服务器池运行的网站。 Load-Balancer使用粘性会话来确保会话留在初始池上。

在网站中,我需要生成特定于网站的URL。根据标准过程,我尝试使用httpcontext.request.url,但这返回错误的URL。然后,我尝试使用request.servervariobles [“ http_host”],然后返回正确的URL。

有人有任何想法吗?

在网站a:request.url返回url a replect.servervariobles [“ http_host”]返回URL a

在现场B:

request.url返回URL a request.servervariobles [“ http_host”]返回URL b

在网站C上:

request.url返回URL aupplect.servervariobles [“ http_host”]返回URL c

有帮助吗?

解决方案

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

编辑:在这一点上,我很困惑为什么您需要拥有“特定网站的URL”?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top