Существует ли библиотека .NET или API для взаимодействия и редактирования метабазы ​​IIS?

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

  •  08-07-2019
  •  | 
  •  

Вопрос

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

Немного предыстории:

У меня есть 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/ каталог по одному из трех путей, перечисленных выше, зайдя в диспетчер IIS.Просто подумал, что было бы полезно иметь быстрое приложение, которое могло бы сделать это за меня.

Это было полезно?

Решение

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

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

и т. д.

Другие советы

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

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

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

http://learn.iis.net/ page.aspx / 165 /, как в использовании-microsoftwebadministration /

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top