почему HttpContext.Request.Url и Request.ServerVariables ["HTTP_HOST"] возвращают разные значения - PullRequest
0 голосов
/ 12 декабря 2010

У меня есть 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

1 Ответ

0 голосов
/ 12 декабря 2010

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

edit: на этой заметке я не понимаю, зачем вам нуженURL, специфичный для сайта "?

...