He automatizado con éxito el proceso de creación de un nuevo sitio web de IIS; sin embargo, el código que he escrito no se preocupa por los grupos de aplicaciones, simplemente se agrega a DefaultAppPool. Sin embargo, me gustaría agregar este sitio recién creado a un grupo de aplicaciones existente.Al programar de manera programada un nuevo sitio web de IIS, ¿cómo puedo agregarlo a un grupo de aplicaciones existente?
Aquí está el código que estoy usando para crear el nuevo sitio web.
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();
< actualización>
Aunque esto no está directamente relacionada con la pregunta, aquí hay algunos valores de muestra se utilizan anteriormente. Esto podría ayudar a alguien a entender exactamente lo que el código anterior está haciendo más fácilmente.
- webServer: "localhost"
- ServerComment: "testing.dev"
- ServerBindings: ": 80: testing.dev"
- sea homeDirectory: "c: \ inetpub \ wwwroot \ prueba \"
< /actualización>
Si k ahora el nombre del grupo de aplicaciones en el que me gustaría que esté este sitio web, ¿cómo puedo encontrarlo y agregarle este sitio?
Gracias por el enlace. He intentado este enfoque, pero cuando leí su respuesta me di cuenta de que nunca estaba enviando el metabasePath correcto (al directorio virtual raíz para la aplicación). Todo está bien ahora. Gracias de nuevo. –
Np. En realidad, la lógica de IIS se basa en directorios virtuales. Casi todo el uso del "sitio web" debe realizarse en el directorio virtual Root (IISVirtualDir) y no en el servidor web (IISWebServer). Si puede intentar usar WMI (se requiere DCOM) en lugar de ADSI. Es más flexible (especialmente sobre permisos). En IIS 7, finalmente tenemos Microsoft.Web.Administration;) – JoeBilly