如何使用Microsoft.Web.Administration.dll获取该页面正在运行的站点信息?

时间:2010-06-11 21:46:22

标签: c# asp.net iis-7

我的服务器上有六个网站,我想从IIS7获取一些信息显示在每个页面的页脚中(只要你当然是管理员)。我正在浏览ServerObject并找到了Sites,但我找不到任何明显的“this site”。 如何获取IIS7中运行该网页的确切网站的信息?

对于快速“黑客”风格的方法,我在default.aspx页面代码后面写了这个:

ServerManager serverMgr = new ServerManager();
foreach (Site site in serverMgr.Sites)
{
    string s = info.Text + site.Name + @"<br/>";
    info.Text = s;
    foreach (Binding binding in site.Bindings)
    {
        string t = info.Text + binding.BindingInformation + " | ";
        string p = t + binding.Protocol + @"<br/>";
        info.Text = p;
    }
}

TIA

1 个答案:

答案 0 :(得分:3)

如果您要获得有关当前网站的一些简单信息,可以使用HostingEnvironment.ApplicationHost.GetSiteName()HostingEnvironment.ApplicationHost.GetSiteID()等一些很棒的方法。否则,以下代码段可能会有所帮助。

using (ServerManager sm = new ServerManager())
{
    foreach (Binding b in sm.Sites[HostingEnvironment.ApplicationHost.GetSiteName()].Bindings)
    {
        // ...
    }
}