2010-12-12 2 views
0

У меня есть 3 веб-сайта, которые запускаются из сбалансированного по нагрузке пула серверов. Load-balancer использует липкие сеансы для обеспечения того, чтобы сеанс оставался в исходном пуле.Почему HttpContext.Request.Url и Request.ServerVariables ["HTTP_HOST"] возвращают разные значения

На веб-сайте мне нужно создать URL-адрес, специфичный для веб-сайта. В соответствии со стандартной процедурой я пытался использовать HttpContext.Request.Url, но это возвращает неверный URL-адрес. Затем я попытался использовать Request.ServerVariables ["HTTP_HOST"] и вернул правильный URL-адрес.

У кого-нибудь есть идеи?

На сайте A: Request.Url возвращает URL-адрес A Request.ServerVariables [ "HTTP_HOST"] возвращает URL-адрес

На сайте B:

Request.Url возвращает Url A Request.ServerVariables [ "HTTP_HOST"] возвращает URL-адрес Аргументы B

На Сайт C:

Request.Url возвращает URL-адрес A Request.ServerVariables [ "HTTP_HOST"] возвращает Url C

ответ

0

Request.ServerVariables["HTTP_HOST"] вернуть хост IIS, то есть имя хоста, на который настроен ваш веб-сайт. Это может быть или не быть тем же хостом, что и в клиенте URL, выполненном для перехода на вашу страницу. Поведение, которое вы видите, абсолютно логично, поскольку клиент всегда выполняет один и тот же URL-адрес, но балансировщик нагрузки отправляет его в разные экземпляры IIS.

изменить: на этой ноте я смущен, почему вам нужно иметь «URL-адрес, специфичный для веб-сайта»?

Смежные вопросы