ASP.NET MVC: как надежно получить реальный URL текущего запроса? - PullRequest
3 голосов
/ 27 марта 2012

Сейчас у меня есть приложение MVC, работающее на http://127.0.0.1:8081/ (на самом деле оно выполняется в эмуляторе вычислений Azure). В строке адреса браузера четко указан номер порта 8081.

Однако, Request.Url и Request.RawUrl оба дают мне http://127.0.0.1:8082/.

Мне нужно отправить электронное письмо с URL-адресом, поэтому мне нужно правильное имя хоста и номер порта. Как получить реальный, реальный URL надежно и без такого неожиданного отклонения?

Ответы [ 3 ]

3 голосов
/ 27 мая 2014

Вы также можете использовать:

Request.Url.Host

или используйте (если вам нужны все инициалы, а не только хост):

public ActionResult Index()
{
string Domain = Request.Url.Scheme + System.Uri.SchemeDelimiter + Request.Url.Host +       (Request.Url.IsDefaultPort ? "" : ":" + Request.Url.Port);
return View(Domain);
}

это взято из 'Обильного кода'
Как получить текущий домен в ASP.NET MVC?

2 голосов
/ 27 марта 2012

Вы можете использовать Request.Headers["Host"];, который даст вам имя хоста (или IP) с правильным номером порта.Затем вы можете восстановить URL.

0 голосов
/ 02 апреля 2012

В облаке, как Azure, ваш процесс может запускаться где угодно с любым номером порта. текущий запрос будет перенаправлен в процесс.

, поэтому у вас всегда будет другой номер порта.

Лучше указывать имя домена в файле web.config; это всегда будет одинаковым для всех запросов, если вы читаете из файла конфигурации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...