获取我的Web应用程序的基本URL

是否可以使用Microsoft.Web.Administration.ServerManager获取IIS 7的基本URL?

通常这将是:

 http://localhost 

但我需要以编程方式获得它。

如果我不能使用ServerManager ,最好的选择是什么?

您可以使用string baseURL = HttpContext.Current.Request.Url.Host

对于那些对Microsoft.Web.Administration.ServerManager的使用感兴趣的人,这里有一些代码。 考虑到IIS应用程序我有多个绑定,导致每个Web应用程序有多个URL。

 var siteName = "Default Web Site"; var appPath = "MyWebApplication"; var serverManager = new ServerManager(); var site = serverManager.Sites[siteName]; appPath = appPath.StartsWith("/") ? appPath : "/" + appPath; var app = site.Applications[appPath]; var urls = new List(); foreach (var binding in site.Bindings) { var sb = new StringBuilder(); sb.Append(binding.Protocol); sb.Append("://"); if (!string.IsNullOrWhiteSpace(binding.Host)) { sb.Append(binding.Host); } else { if (Equals(binding.EndPoint.Address, IPAddress.Any)) { sb.Append("localhost"); } else { sb.Append(binding.EndPoint.Address); } if (binding.EndPoint.Port != 80) { sb.Append(":"); sb.Append(binding.EndPoint.Port); } } sb.Append(app.Path); urls.Add(sb.ToString()); }