2010-12-01 26 views
1

我想寫一個方法,將發送一個電子郵件到客戶端有一個下載鏈接,用戶可以直接點擊下載。ASP.Net獲取域名不是本地主機?

其實我仿效它作爲一個持續運行的進程在全球繼續發送文件到FTP服務器,如果有一個錯誤的發送,一個鏈接將被髮送到管理員,使他可以下載文件直。

我的問題是如何獲得外部鏈接,例如我想要http://www.abc.com/temp/file.txt。我想要一個通用的解決方案,以便無論我更改我的服務器的域名,代碼仍然工作?

謝謝

+0

這如何服務涉及定義的域(IIS綁定)服務器? – 2010-12-01 10:31:07

+0

它是服務器的一部分?實際上我正在模擬它作爲一個持續運行的服務在全球範圍內不斷髮送文件到FTP服務器,如果發送錯誤,鏈接將發送到管理員直接下載文件。 – Leo 2010-12-01 10:33:33

回答

2

ASP.NET在技術上沒有「知道」入口域是什麼。所有關心的都是應用程序,這些應用程序大部分與用戶正在進入的權限正交。在請求線程的上下文中,它知道用戶可能要求哪個域,但僅此而已。

您可以使用(其中包括)Control.ResolveUrl("~/path_to_file"); - 從那裏獲取服務器相對路徑,您需要一些配置驅動的方式來確定域應該是什麼。

1

我不知道,我完全理解的問題,但在IIS 7,你可以得到一些網站與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 
    } 

}