Ich habe den Prozess der Erstellung einer neuen IIS-Website erfolgreich automatisiert, aber der Code, den ich geschrieben habe, kümmert sich nicht um Anwendungspools, sondern wird nur zu DefaultAppPool hinzugefügt. Allerdings möchte ich diese neu erstellte Website zu einem vorhandenen Anwendungspool hinzufügen.Wenn ich programmatisch eine neue IIS-Website erstelle, wie kann ich sie zu einem vorhandenen Anwendungspool hinzufügen?
Hier ist der Code, den ich verwende, um die neue Website zu erstellen.
var w3Svc = new DirectoryEntry(string.Format("IIS://{0}/w3svc", webserver));
var newsite = new object[] { serverComment, new object[] { serverBindings }, homeDirectory };
var websiteId = w3Svc.Invoke("CreateNewSite", newsite);
site.Invoke("Start", null);
site.CommitChanges();
< Update>
Obwohl dies nicht direkt auf die Frage bezieht, sind hier einige Beispielwerte oben verwendet wird. Dies könnte jemandem helfen, genau zu verstehen, was der obige Code leichter macht.
- Webserver: "localhost"
- Servercomment: "testing.dev"
- Serverbindings: ": 80: testing.dev"
- homedirectory: "C: \ inetpub \ wwwroot \ Test \"
< /update>
Wenn ich k jetzt der Name des Anwendungspools, in dem ich diese Website haben möchte, wie kann ich sie finden und diese Seite hinzufügen?
Danke für den Link - Ich habe diesen Ansatz versucht, aber als ich Ihre Antwort gelesen habe, wurde mir klar, dass ich nie den richtigen metabasePath (in das root virtuelle Verzeichnis für die Anwendung) geschickt habe! Es ist alles gut jetzt. Danke noch einmal. –
Nr. Tatsächlich basiert die IIS-Logik auf virtuellen Verzeichnissen. Fast alle "Website" -Verwendungen müssen im virtuellen Root-Verzeichnis (IISVirtualDir) und nicht auf dem Webserver (IISWebServer) ausgeführt werden. Wenn Sie versuchen können, WMI (DCOM erforderlich) anstelle von ADSI zu verwenden. Es ist flexibler (vor allem über die Erlaubnis). In IIS 7 haben wir endlich die Microsoft.Web.Administration;) – JoeBilly