Я пытаюсь создать небольшое приложение на С#, которое должно запускать/останавливать рабочий процесс IIS Express. Для этого я хочу использовать официальный "API-интерфейс IIS Express", который документирован в MSDN: http://msdn.microsoft.com/en-us/library/gg418415.aspx
Насколько я понимаю, API основан (только) на интерфейсах COM. Чтобы использовать эти COM-интерфейсы, я добавил ссылку на библиотеку COM в VS2010 через ссылку "Добавить ссылку" → "COM" - "Интерфейс диспетчера интерфейсов IIS":
До сих пор так хорошо, но что дальше? Существует интерфейс IIISExprProcessUtility
, который включает в себя два "метода" для запуска/остановки процесса IIS. Должен ли я писать класс, который реализует этот интерфейс?
public class test : IISVersionManagerLibrary.IIISExprProcessUtility
{
public string ConstructCommandLine(string bstrSite, string bstrApplication, string bstrApplicationPool, string bstrConfigPath)
{
throw new NotImplementedException();
}
public uint GetRunningProcessForSite(string bstrSite, string bstrApplication, string bstrApplicationPool, string bstrConfigPath)
{
throw new NotImplementedException();
}
public void StopProcess(uint dwPid)
{
throw new NotImplementedException();
}
}
Как вы можете видеть, я не профессиональный разработчик. Может кто-то указать мне в правильном направлении. Любая помощь приветствуется.
Обновление 1: В соответствии с предложениями я пробовал следующий код, который, к сожалению, не работает:
Ок, он может быть создан, но я не вижу, как использовать этот объект...
IISVersionManagerLibrary.IIISExpressProcessUtility test3 = (IISVersionManagerLibrary.IIISExpressProcessUtility) Activator.CreateInstance(Type.GetTypeFromCLSID(new Guid("5A081F08-E4FA-45CC-A8EA-5C8A7B51727C")));
Exception: Retrieving the COM class factory for component with CLSID {5A081F08-E4FA-45CC-A8EA-5C8A7B51727C} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).