2010-12-01 3 views
1

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

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

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

Благодаря

+0

Как эта услуга относится к сервер? – 2010-12-01 10:31:07

+0

Это часть сервера? на самом деле я имитирую его как постоянно работающий сервис в Global, который продолжает отправлять файл на ftp-сервер, если есть ошибка с отправкой, ссылка будет отправлена ​​администратору, чтобы загрузить файл напрямую. – Leo 2010-12-01 10:33:33

ответ

2

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

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

1

Я не уверен, что я понимаю, вопрос полностью, но на IIS 7 вы можете получить домены (IIS Bindings), определенные для некоторого сайта с узлом 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 
    } 

} 


Смежные вопросы