Взаимодействие с IIS через C # - PullRequest
7 голосов
/ 29 марта 2011

У меня есть программа на C #, используемая для создания и развертывания набора веб-сайтов.

Я хотел бы программно взаимодействовать с IIS, чтобы он менялся там, где виртуальный каталог для тестовой системы указывает на результат сборки.

Это возможно или просто сумасшедший разговор?

Ответы [ 4 ]

9 голосов
/ 29 марта 2011

Да, это возможно через WMI.Инструментарий управления Windows - это в основном API вокруг окон.Вы можете программно сделать много вещей с ним.

IIS 6 и ниже вам нужен WMI, IIS 7 и выше намного проще, так как вы просто используете сборку Microsoft.Web.Administration.

WMI: http://msdn.microsoft.com/en-us/library/aa394582(v=vs.85).aspx

Microsoft.Web.Administration: http://msdn.microsoft.com/en-us/library/ms613523%28v=VS.90%29.aspx

4 голосов
/ 29 марта 2011

Используйте Microsoft.Web.Administration DLL, и вы можете автоматизировать IIS 7 и выше.

Взгляните здесь .

1 голос
/ 29 марта 2011

Как уже упоминали другие, при использовании IIS7 используйте управляемый API Microsoft.Web.Administration.

Если это IIS6, то я бы рекомендовал использовать System.DirectoryServices, который отображает API ADSI.Это намного меньше хлопот, чем использование WMI:

Использование System.DirectoryServices для настройки IIS
Создание сайтов и виртуальных каталогов с использованием System.DirectoryServices

Если вам нужно управлять IIS, например, запускать / останавливать сайты, перерабатывать пулы приложений, тогда лучше использовать WMI.

1 голос
/ 29 марта 2011

Какая версия IIS? Если вы используете 5.1 или 6, вам придется использовать com-объекты, чтобы добраться туда. Если используется 7, у вас есть возможность новых классов в .net.

Для 5.1 и 6 я склонен использовать ADSI, а не WMI, потому что я видел много систем, в которых WMI нестабилен или неправильно установлен. Не уверен, как это происходит, но я никогда не сталкивался с проблемой при использовании объектов ADSI. Примечание. На самом деле вы все еще можете использовать их в IIS 7, но вам нужно включить опцию «Совместимость управления IIS 6» в разделе «Добавить / удалить компоненты Windows».

Для получения дополнительной информации об объектах на основе IIS7, проверьте: Создание виртуального каталога в IIS с помощью c #

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...