pourquoi ne HttpContext.Request.Url et Request.ServerVariables [ « HTTP_HOST »] renvoient des valeurs différentes

StackOverflow https://stackoverflow.com/questions/4419735

Question

J'ai 3 sites qui fonctionnent à partir d'un pool de charge équilibrée des serveurs. Équilibreur de charge utilise des sessions collantes pour garantir que les séjours de session sur la piscine initiale.

Dans le site, je dois générer une URL spécifique sur le site. Conformément à la procédure standard que j'ai essayé d'utiliser HttpContext.Request.Url, mais ceci retourne la mauvaise URL. J'ai ensuite essayé de Request.ServerVariables d'utilisation [ « HTTP_HOST »] et renvoie l'URL correcte.

Est-ce que quelqu'un a des idées?

Sur le site A: Request.Url retourne URL A Request.ServerVariables [ "HTTP_HOST"] renvoie URL A

Sur le site B:

Request.Url renvoie Url A Request.ServerVariables [ "HTTP_HOST"] retourne Url B

Sur le site C:

Request.Url renvoie Url A Request.ServerVariables [ "HTTP_HOST"] retourne URL C

Était-ce utile?

La solution

retour Request.ServerVariables["HTTP_HOST"] IIS hôte, à savoir le nom d'hôte de votre site Web est mis à répondre. Cela peut ou peut ne pas être le même hôte que dans le client URL exécutée pour accéder à votre page. Le comportement que vous voyez est tout à fait logique puisque le client exécute toujours la même URL, mais la charge équilibreur envoyer à différentes instances IIS.

modifier: sur cette note que je suis confus quant à pourquoi auriez-vous besoin d'avoir un « spécifique URL pour le site »

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top