Можно ли программно запускать / останавливать пул приложений или веб-сайт в IIS? - PullRequest
3 голосов
/ 19 июля 2009

Я пытаюсь найти способ остановить, запустить, перезапустить / перезапустить веб-сайты и пулы приложений из веб-интерфейса на одном сервере. В идеале это было бы то, что я мог бы сделать с .NET без необходимости выполнения команд оболочки.

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

Мне нужно сделать это для IIS6 и IIS7.

Ответы [ 2 ]

3 голосов
/ 19 июля 2009

Вы ищете класс Microsoft.Web.Administration.ServerManager . Вы можете найти стартовый код здесь: http://learn.iis.net/page.aspx/226/microsoftwebadministration/.

Вы можете изучить этот код дальше, чтобы делать то, что вы хотите. Я считаю, что весь appcmd написан поверх этой платформы.

Эта структура не будет работать для IIS6 и ниже. Вам нужен IIS7. Для II6 вы можете использовать подход WMI, предложенный Мехметом Арасом. К сожалению, вам нужны эти две библиотеки; или, может быть, есть какой-то код, который абстрагирует эти библиотеки.

2 голосов
/ 19 июля 2009

Вы можете использовать WMI (Инструментарий управления Windows). Взгляните на Использование WMI для настройки IIS на msdn. Вы также можете получить доступ к поставщикам WMI и взаимодействовать с ними, включая IIS из кода C #. Пространство имен System.Management - это место для начала.

Одна вещь, которую я хотел бы предупредить вас, это выяснить, требует ли код WMI в .NET полного доверия или нет, поскольку вы хотите иметь возможность делать это из веб-приложения .NET, которое не работает с полным доверием. по умолчанию.

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