ASP.Net得到的域名不是localhost?

时间:2010-12-01 10:21:35

标签: c# asp.net dns

我正在尝试编写一种方法,该方法会向客户端发送一封电子邮件,其中包含用户可以直接下载的下载链接。

实际上我正在将其模拟为Global中持续运行的进程,该进程不断向ftp服务器发送文件,如果发送时出错,则会向admin发送一个链接,以便他可以直接下载该文件

我的问题是我如何获得外部链接,例如我希望http://www.abc.com/temp/file.txt。我想要一个通用的解决方案,这样无论我改变服务器的域名,代码仍然有用吗?

由于

2 个答案:

答案 0 :(得分:2)

ASP.NET技术上并不“知道”输入域是什么。它所关心的只是应用程序,它们大多与用户进入的权限正交。在请求线程的上下文中,它知道用户可能要求的域,但这就是全部。

您可以通过使用(除其他事项)Control.ResolveUrl("~/path_to_file");来获取服务器相对路径 - 从那里,您需要一些配置驱动的方式来确定域应该是什么。

答案 1 :(得分:1)

我不确定我是否完全理解了问题,但是在IIS 7上,您可以使用Microsoft.Web.Administration assembly

为某些站点定义域(IIS绑定)
ServerManager sman = new ServerManager();     
foreach (Site iisSite in sman.Sites)
{
  foreach (Binding bind in iisSite.Bindings)
  {
    // bind.Host - here is the site domain
  }

}


相关问题