HttpContext.Current.Request.Url.Host, что он возвращает?
У меня есть локальное приложение, у которого есть путь:
http://localhost:950/m/pages/Searchresults.aspx?search=knife&filter=kitchen
но когда это происходит в среде интеграции или, возможно, в производстве, это будет что-то вроде
http://www.someshopping.com/m/pages/SearchResults.aspx?search=knife&filter=kitchen
В некоторых случаях мне нужно просто передать:
www.someshopping.com
в мой XSLT файл и в одной из функций, которые я использую:
string currentURL = HttpContext.Current.Request.Url.Host;
это возвращает мне " localhost" в локальной среде. Вернет ли тот же код мне:
www.someshopping.com в производстве (мне НЕ нужна http://)
просто не хочу рисковать. Так задал этот глупый вопрос.
Ответы
Ответ 1
Да, до тех пор, пока URL-адрес, который вы вводите в браузер www.someshopping.com, и вы не используете переписывание URL-адресов, тогда
string currentURL = HttpContext.Current.Request.Url.Host;
вернет www.someshopping.com
Обратите внимание на разницу между локальной средой отладки и рабочей средой
Ответ 2
Свойство Host
вернет имя домена, которое вы использовали при доступе к сайту. Таким образом, в вашей среде разработки, поскольку вы запрашиваете
http://localhost:950/m/pages/Searchresults.aspx?search=knife&filter=kitchen
Возвращает localhost
. Вы можете разбить свой URL так:
Protocol: http
Host: localhost
Port: 950
PathAndQuery: /m/pages/SearchResults.aspx?search=knight&filter=kitchen
Ответ 3
Попробуйте следующее:
string callbackurl = Request.Url.Host != "localhost"
? Request.Url.Host : Request.Url.Authority;
Это будет работать как для местной, так и для производственной среды. Поскольку локальный использует url с портом no, что возможно с использованием Url.Host.