2010-12-01 25 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 
    } 

}