web-dev-qa-db-fra.com

HttpContext.Current.Request.Url.Host ce qu'il retourne?

J'ai une application locale qui a un chemin:

http://localhost:950/m/pages/Searchresults.aspx?search=knife&filter=kitchen

mais quand cela va à l'environnement d'intégration ou peut-être à la production, ce sera quelque chose comme

http://www.someshopping.com/m/pages/SearchResults.aspx?search=knife&filter=kitchen

Dans certains cas, je dois simplement passer:

www.someshopping.com

à mon fichier XSLT et dans l'une des fonctions que j'utilise ceci:

string currentURL = HttpContext.Current.Request.Url.Host;

cela me renvoie "localhost" dans l'environnement local. Le même code me renverra-t-il:

www.someshopping.com en production (JE N'AI PAS besoin http: //)

ne veux tout simplement pas prendre de chance. Alors posé cette question idiote.

31
Amin Sayed

Oui, tant que l'URL que vous saisissez dans le navigateur www.someshopping.com et que vous n'utilisez pas la réécriture d'URL alors

string currentURL = HttpContext.Current.Request.Url.Host;

renverra www.someshopping.com

Notez la différence entre un environnement de débogage local et un environnement de production

39
edhurtig

La propriété Host renverra le nom de domaine que vous avez utilisé lors de l'accès au site. Donc, dans votre environnement de développement, puisque vous demandez

http://localhost:950/m/pages/Searchresults.aspx?search=knife&filter=kitchen

Il renvoie localhost. Vous pouvez séparer votre URL comme suit:

Protocol: http
Host: localhost
Port: 950
PathAndQuery: /m/pages/SearchResults.aspx?search=knight&filter=kitchen
17
Tejs

Essaye ça:

string callbackurl = Request.Url.Host != "localhost" 
    ? Request.Url.Host : Request.Url.Authority;

Cela fonctionnera pour l'environnement local et de production. Parce que le local utilise l'URL avec le port no, cela est possible en utilisant Url.Host.

6
Mahesh