Programmgesteuertes Starten und Beenden von IIS Express

Ich versuche zu bauen, ein kleines Programm in C# welches sollte starten/beenden von IIS Express Arbeitsprozess. Für diesen Zweck möchte ich die offizielle "IIS Express API", welches auf MSDN dokumentiert: http://msdn.microsoft.com/en-us/library/gg418415.aspx

Soweit ich das verstanden habe, ist die API basiert (nur) auf COM-Schnittstellen. Benutzen Sie diese COM-Schnittstellen habe ich einen Verweis auf die COM-Bibliothek in VS2010 über Verweis Hinzufügen -> COM -> "IIS-Versionen Installiert-Manager-Schnittstelle":

Programmgesteuertes Starten und Beenden von IIS Express

So weit So gut, aber was kommt als Nächstes? Es ist ein IIISExprProcessUtility - Schnittstelle zur Verfügung, die beinhaltet das die beiden "Methoden" zum starten/stoppen der IIS-Prozess. Muss ich eine Klasse schreiben, die diese Schnittstelle implementiert?

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();
    }
} 

Wie Sie sehen können, ich bin kein professioneller Entwickler. Kann mir jemand zeigen in die richtige Richtung.
Jede Hilfe wird sehr geschätzt.

Update 1:
Entsprechend der Ratschläge habe ich versucht den folgenden code der leider nicht funktioniert:

Programmgesteuertes Starten und Beenden von IIS Express
Ok, es kann instanziiert werden aber ich kann nicht sehen, wie dieses Objekt...

Programmgesteuertes Starten und Beenden von IIS Express

Programmgesteuertes Starten und Beenden von IIS Express

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)).

InformationsquelleAutor der Frage Mike | 2011-01-23

Schreibe einen Kommentar