是否可以通过使用获取 IIS 7 中托管的网站的基本 URLMicrosoft.Web.Administration.ServerManager
?
在最简单的情况下,这将是:
http://localhost
但我需要以编程方式获取它。
如果我不能使用ServerManager
最好的选择是什么?
对于那些对 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<string>();
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());
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)