Pergunta

... ou estou preso rolando meu próprio "XML cortar" funções. Eu gostaria de criar um aplicativo tasktray pequena para que eu possa rapidamente re-point um diretório Virual a um dos vários de pastas no meu disco rígido.

Um pouco de background:

Eu tenho 3 diferentes ramos svn de nossa base de código na minha máquina dev.

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

Nossos integra aplicativos com uma 3ª CMS partido que eu já instalados em

http://localhost/cms/

Para trabalhar o nosso app tem que viver no mesmo diretório raiz. assim:

http://localhost/app/

Dependendo do ramo que estou trabalhando, estou re-apontando o diretório /app/ a um dos 3 caminhos listados acima, entrando no Gerenciador do IIS. Apenas pensei que seria útil para ter um app rápido para fazer isso por mim.

Foi útil?

Solução

Ok ... este não é um aplicativo bandeja, mas você pode executá-lo a partir da linha de comando. Basta alterar os caminhos físicos conforme necessário:

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;
        }
      }
    }
  }
}

Em seguida, execute como em:

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

etc

Outras dicas

Eu não usei esse meu eu, então eu não estou 100% de certeza que vai resolver seu problema. Mas dê uma olhada System.DirectoryServices em .NET. Ele pode acessar IIS.

MSDN ajuda para DirectoryServices

Bem, para IIS 7, há um invólucro .NET para permitir IIS gerenciamento via .NET. Veja este link para mais detalhes,

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

Para a versão anterior do IIS (5 ou 6), interfaces ADSI e WMI são fornecidos,

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top