Administra IIS 7 programáticamente
El api de IIS 7 vuelve muy sencillo el administrar programáticamente nuestros servidores web. A través del nuevo api podemos hacer todo lo que haríamos a través de la interfaz gráfica, pero desde nuestro código. Esto se vuelve muy conveniente para escenarios de automatización, o para nuestras pruebas. A continuación enumero algunos escenarios, y el código necesario para lograrlo.
Escenario 1: Crear un nuevo sitio de internet.
using (ServerManager serverManager = new ServerManager())
{
string nombreSitio = "sitio_alfador";
string pathSitio = Path.Combine(@"C:\sitios", nombreSitio);
Directory.CreateDirectory(pathSitio);
serverManager.Sites.Add(nombreSitio, pathSitio, 8080);
serverManager.CommitChanges();
//Es importante que recordemos siempre llamar serverManager.CommitChanges() después de realizar cambios.De lo contrario, los cambios que hagamos no serán realizados.
}
Escenario 2: Crear una aplicación en el sitio creado en el paso anterior.
using (ServerManager serverManager = new ServerManager())
{
string nombreSitio = "sitio_alfador";
string pathSitio = Path.Combine(@"C:\sitios", nombreSitio);
string pathAplicacion = Path.Combine(pathSitio, "aplicacion_alfador");
string nombreAplicacion = "/aplicacion";
serverManager.Sites[nombreSitio].Applications.Add(nombreAplicacion, pathAplicacion);
serverManager.CommitChanges();
}
Escenario 3: Eliminar la aplicación y el sitio, dejando todo como estaba al principio.
using (ServerManager serverManager = new ServerManager())
{
string nombreSitio = "sitio_alfador";
Site sitioABorrar = null;
foreach (var site in serverManager.Sites)
{
if (site.Name.Equals(nombreSitio))
{
sitioABorrar = site;
break;
}
}
serverManager.Sites.Remove(sitioABorrar);
serverManager.CommitChanges();
}
Hay muchas más cosas que se pueden hacer con este API. Si ustedes trabajan con IIS les recomiendo que revisen la documentación de ServerManagerpara que conozcan todo lo que este api puede hacer.
Y por supuesto, ¡compartan los scripts interesantes que conozcan con nosotros!