是否有与IIS元数据库交互/编辑的.NET库或API?

是否有与IIS元数据库交互/编辑的.NET库或API?,.net,iis,api,metabase,.net,Iis,Api,Metabase,…还是我一直在使用自己的“XML切碎”函数。我想创建一个小tasktray应用程序,这样我可以快速地将虚拟目录重新指向硬盘上的几个文件夹之一 背景信息: 在我的开发机器上,我们的代码有3个不同的svn分支 Current Production Branch ( C:\Projects\....\branches\Prod\ ) Next Release Canidate Branch ( C:\Projects\....\branches\RCX\ ) Trunk

…还是我一直在使用自己的“XML切碎”函数。我想创建一个小tasktray应用程序,这样我可以快速地将虚拟目录重新指向硬盘上的几个文件夹之一

背景信息:

在我的开发机器上,我们的代码有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/

根据我正在处理的分支,我通过进入IIS管理器将
/app/
目录重新指向上面列出的3个路径之一。我只是觉得有一个快速的应用程序来帮我做会很方便。

我自己没有用过这个,所以我不能100%肯定它能解决你的问题。但是看看.NET中的System.DirectoryServices。它可以访问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

etc

对于IIS 7,有一个.NET包装器可以通过.NET实现IIS管理。有关详细信息,请参见此链接

对于以前版本的IIS(5或6),提供了ADSI和WMI接口


Kudos Kevin,应该很容易就能将其破解到我已经拥有的一个小任务托盘应用程序中。非常感谢。