2011-03-29 15 views
6

Tengo un programa C# utilizado para compilar e implementar un conjunto de sitios web.Interactuando con IIS a través de C#

Me gustaría interactuar programáticamente con IIS para que cambie donde el directorio virtual para un sistema de prueba apunta al resultado de la compilación.

¿Es posible o solo una locura?

Respuesta

8

Sí, es posible a través de WMI. Windows Management Instrumentation es básicamente una API alrededor de Windows. Puedes hacer muchas cosas programáticamente con eso.

IIS 6 y menor que necesite WMI, IIS 7 y superior es mucho más simple ya que solo usa el ensamblado Microsoft.Web.Administration.

WMI: http://msdn.microsoft.com/en-us/library/aa394582(v=vs.85).aspx

Microsoft.Web.Administration: http://msdn.microsoft.com/en-us/library/ms613523%28v=VS.90%29.aspx

+0

OP sería mejor usar la API ADSI presentada a través de 'System.DirectoryServices'. Es mucho menos complicado que WMI. – Kev

+0

¿Esto funcionó? ¿Puedes marcarlo como aceptado? –

1

¿Qué versión de IIS? Si usa 5.1 o 6, tendrá que usar objetos com para llegar allí. Si usa 7, tiene la opción de nuevas clases en .net.

Para 5.1 y 6, tiendo a usar ADSI, en lugar de WMI, porque he visto muchos sistemas donde WMI está escamosa o no está instalado correctamente. No estoy seguro de cómo sucede esto, pero nunca me he encontrado con un problema al usar los objetos ADSI. Nota: en realidad puede seguir utilizándolos en IIS 7, pero debe habilitar la opción Compatibilidad de administración de IIS 6, en las funciones de agregar/quitar ventanas.

Para obtener más información sobre los objetos basados ​​en IIS7, echa un vistazo a: Creating Virtual directory in IIS with c#

3

Uso Microsoft.Web.Administration DLL y puede automatizar IIS 7 y superiores.

Echa un vistazo a here.

1

Como han mencionado otros, si usa IIS7, utilice la API administrada Microsoft.Web.Administration.

Si esto es IIS6 entonces yo recomendaría usar System.DirectoryServices que hace de superficie las API de ADSI. Es mucho menos problemas que el uso de WMI:

Using System.DirectoryServices to Configure IIS
Creating Sites and Virtual Directories Using System.DirectoryServices

Si tiene que controlar IIS, por ejemplo, sitios de inicio/parada, piscinas aplicación reciclaje entonces por todos los medios de WMI es un mejor opción.

Cuestiones relacionadas