Существует ли библиотека .NET или API для взаимодействия / редактирования метабазы ​​IIS? - PullRequest
4 голосов
/ 19 ноября 2008

... или я застрял в своих собственных функциях "XML chopping". Я хотел бы создать небольшое приложение для задач, чтобы я мог быстро перенести виртуальный каталог в одну из нескольких папок на моем жестком диске.

Бит фона:

У меня есть 3 разных svn ветви нашего кода на моей машине разработки.

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

Наше приложение интегрируется со сторонней CMS, которую я установил на

http://localhost/cms/

Для того, чтобы наше приложение работало, оно должно находиться в одной корневой директории. так:

http://localhost/app/

В зависимости от ветви, над которой я работаю, я перенаправляю каталог /app/ на один из 3 путей, перечисленных выше, перейдя в IIS Manager. Просто подумал, что было бы удобно иметь быстрое приложение, чтобы сделать это для меня.

Ответы [ 3 ]

3 голосов
/ 19 ноября 2008

Хорошо ... это не приложение в трее, но вы можете запустить его из командной строки. Просто измените физические пути по мере необходимости:

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

Затем запустите как:

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

и т.д.

1 голос
/ 23 ноября 2008

Ну, для IIS 7 есть оболочка .NET, позволяющая управлять IIS через .NET. Смотрите эту ссылку для деталей,

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

Для предыдущей версии IIS (5 или 6) предусмотрены интерфейсы ADSI и WMI,

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

1 голос
/ 19 ноября 2008

Я не использовал это сам, поэтому я не уверен на 100%, что это решит вашу проблему. Но взгляните на System.DirectoryServices в .NET. Он может получить доступ к IIS.

Справка MSDN для DirectoryServices

...