Iniciando e Parando o IIS Express Programaticamente
Estou tentando criar um pequeno aplicativo em c # que deve iniciar / parar um processo de trabalho do IIS Express. Para esse fim, quero usar a "API do IIS Express" oficial, documentada no MSDN:http://msdn.microsoft.com/en-us/library/gg418415.aspx
Tanto quanto eu entendo, a API é baseada (apenas) em interfaces COM. Para usar essas interfaces COM, adicionei uma referência à biblioteca COM no VS2010, em Add Reference -> COM -> "Interface do Gerenciador de versões instaladas do IIS":
Até aí tudo bem, mas o que vem a seguir? Há umIIISExprProcessUtility
interface disponível, que inclui os dois "métodos" para iniciar / parar um processo do IIS. Preciso escrever uma classe que implemente essa interface?
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();
}
}
Como você pode ver, eu não sou um desenvolvedor profissional. Alguém pode me apontar na direção certa. Qualquer ajuda é muito apreciada.
Atualização 1: De acordo com as sugestões, tentei o seguinte código que infelizmente não funciona:
Ok, pode ser instanciado, mas não consigo ver como usar esse objeto ...
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)).