为什么httpcontext.request.url和request.servervariobles [“ http_host”]返回不同的值
-
08-10-2019 - |
题
我有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”?
不隶属于 StackOverflow