ASP.Net получить доменное имя, а не localhost? - PullRequest
1 голос
/ 01 декабря 2010

Я пытаюсь написать метод, который будет отправлять электронное письмо клиенту со ссылкой для скачивания, по которой пользователь может щелкнуть, чтобы загрузить напрямую.

На самом деле я эмулирую это как непрерывно работающий процесс в Global, который продолжает отправлять файл на ftp-сервер. Если при отправке возникает ошибка, ссылка будет отправлена ​​администратору, чтобы он мог загрузить файл напрямую. .

У меня вопрос, как я могу получить внешнюю ссылку, например, я хотел бы иметь http://www.abc.com/temp/file.txt. Я хочу универсальное решение, чтобы независимо от домена, на котором я меняю свой сервер, код все еще работал?

Спасибо

Ответы [ 2 ]

2 голосов
/ 01 декабря 2010

ASP.NET технически не «знает», что собой представляют входные домены. Все, что его волнует - это приложения , которые в большинстве своем ортогональны полномочиям пользователя. В контексте потока запросов он знает, какой домен, вероятно, запрашивал этот пользователь, но это все.

Вы можете получить относительный к серверу путь, используя (помимо прочего) Control.ResolveUrl("~/path_to_file"); - оттуда вам потребуется какой-то управляемый конфигурацией способ определения того, каким должен быть домен.

1 голос
/ 01 декабря 2010

Я не уверен, что полностью понимаю вопрос, но в IIS 7 вы можете получить домены (привязки IIS), определенные для некоторого сайта с помощью сборки Microsoft.Web.Administration

ServerManager sman = new ServerManager();     
foreach (Site iisSite in sman.Sites)
{
  foreach (Binding bind in iisSite.Bindings)
  {
    // bind.Host - here is the site domain
  }

}


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