Подтвердить что ты не робот

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://)

просто не хочу рисковать. Так задал этот глупый вопрос.

4b9b3361

Ответ 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.