Добавьте фильтр ISAPI на существующий сайт с помощью Microsoft.Web.Administration - PullRequest
3 голосов
/ 04 января 2012

Я пытаюсь добавить / настроить фильтр ISAPI через c # и сборку Microsoft.Web.Administration.До сих пор мне не удалось добавить фильтр ISAPI для одного веб-сайта.

Я только что нашел эту статью (http://www.iis.net/ConfigReference/system.webServer/isapiFilters) для добавления в глобальные настройки для всего IIS. Мне просто нужно это для определенного сайта. Я использую IIS 7.5.

1 Ответ

2 голосов
/ 05 января 2012

Вам просто нужно настроить приведенный пример (см. Встроенные комментарии):

ServerManager serverManager = new ServerManager();   

Configuration config = serverManager.GetApplicationHostConfiguration();

// Change this line:    
ConfigurationSection isapiFiltersSection = 
                           config.GetSection("system.webServer/isapiFilters");

// To this by adding an extra param specifying the site name:
ConfigurationSection isapiFiltersSection = 
              config.GetSection("system.webServer/isapiFilters", "my site name");


ConfigurationElementCollection isapiFiltersCollection = 
                           isapiFiltersSection.GetCollection();

ConfigurationElement filterElement = 
                        isapiFiltersCollection.CreateElement("filter");
filterElement["name"] = @"SalesQueryIsapi";
filterElement["path"] = @"c:\Inetpub\www.contoso.com\filters\SalesQueryIsapi.dll";
filterElement["enabled"] = true;
filterElement["enableCache"] = true;
isapiFiltersCollection.Add(filterElement);

serverManager.CommitChanges();

Если вы не знаете название сайта, но знаете его идентификатор (или номер IIS), вы можете запроситьимя, выполнив:

int iisNumber = 12345;
string siteName = serverManager.Sites.Single(s => s.Id == iisNumber).Name;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...