¿Existe una biblioteca .NET o API para interactuar con / editar la metabase de IIS?

StackOverflow https://stackoverflow.com/questions/301438

  •  08-07-2019
  •  | 
  •  

Pregunta

... o estoy atascado rodando mi propio "corte XML" funciones Me gustaría crear una pequeña aplicación de bandeja de tareas para poder volver a apuntar rápidamente un Directorio Virual a una de varias carpetas en mi disco duro.

Fondo:

Tengo 3 ramas svn diferentes de nuestra base de código en mi máquina de desarrollo.

Current Production Branch    ( C:\Projects\....\branches\Prod\ )
Next Release Canidate Branch ( C:\Projects\....\branches\RCX\ )
Trunk                        ( C:\Projects\....\trunk\ )

Nuestra aplicación se integra con un CMS de terceros que he instalado en

http://localhost/cms/

Para que funcione, nuestra aplicación tiene que vivir en el mismo directorio raíz. entonces:

http://localhost/app/

Dependiendo de la rama en la que estoy trabajando, vuelvo a señalar el directorio / app / a una de las 3 rutas enumeradas anteriormente al ingresar al Administrador IIS. Solo pensé que sería útil tener una aplicación rápida para hacerlo por mí.

¿Fue útil?

Solución

Ok ... esta no es una aplicación de bandeja pero puedes ejecutarla desde la línea de comando. Simplemente cambie las rutas físicas según sea necesario:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.DirectoryServices;

namespace Swapper
{
  class Program
  {
    static void Main(string[] args)
    {
      using (DirectoryEntry appRoot = 
               new DirectoryEntry("IIS://Localhost/W3SVC/1/root/app"))
      {
        switch (args[0].ToLower())
        {
          case "prod":
            appRoot.Properties["Path"].Value = @"e:\app\prod";
            appRoot.CommitChanges();
            break;

          case "rcx":
            appRoot.Properties["Path"].Value = @"e:\app\rcx";
            appRoot.CommitChanges();
            break;

          case "trunk":
            appRoot.Properties["Path"].Value = @"e:\app\trunk";
            appRoot.CommitChanges();
            break;

          default:
            Console.WriteLine("Don't know");
            break;
        }
      }
    }
  }
}

Luego ejecute como en:

C:\>swapper prod
C:\>swapper rcx

etc.

Otros consejos

No lo he usado, así que no estoy 100% seguro de que resuelva su problema. Pero eche un vistazo a System.DirectoryServices en .NET. Puede acceder a IIS.

Ayuda de MSDN para DirectoryServices

Bueno, para IIS 7, hay un contenedor .NET para habilitar la administración de IIS a través de .NET. Vea este enlace para más detalles,

http://learn.iis.net/ page.aspx / 165 / how-to-use-microsoftwebadministration /

Para la versión anterior de IIS (5 o 6), se proporcionan interfaces ADSI y WMI,

http://msdn.microsoft.com/en-us/library /ms525885.aspx

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top