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.
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
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
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.