Как использовать Microsoft.Web.Administration.dll для получения информации о сайте, на котором работает страница? - PullRequest
3 голосов
/ 12 июня 2010

У меня есть полдюжины сайтов на моем сервере, и я хотел бы получить некоторую информацию из IIS7 для отображения в нижнем колонтитуле каждой страницы (если вы, конечно, являетесь администратором).Я прохожу через ServerObject и нашел сайты, но не вижу ничего очевидного для "этого сайта". Что я должен сделать, чтобы получить информацию о конкретном сайте в 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 Ответ

3 голосов
/ 12 июня 2010

Если вы хотите получить простую информацию о текущем веб-сайте, есть несколько замечательных методов, таких как HostingEnvironment.ApplicationHost.GetSiteName() или HostingEnvironment.ApplicationHost.GetSiteID() и так далее. В противном случае может помочь следующий фрагмент кода.

using (ServerManager sm = new ServerManager())
{
    foreach (Binding b in sm.Sites[HostingEnvironment.ApplicationHost.GetSiteName()].Bindings)
    {
        // ...
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...