4

...或者我是否坚持滚动我自己的“XML 切割”功能。我想创建一个小型任务托盘应用程序,这样我就可以快速将虚拟目录重新指向我硬盘上的几个文件夹之一。

一点背景:

我的开发机器上有我们代码库的 3 个不同的 svn 分支。

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

我们的应用程序与我安装的第 3 方 CMS 集成

http://localhost/cms/

为了工作,我们的应用程序必须位于同一个根目录中。所以:

http://localhost/app/

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

4

3 回答 3

3

好的...这不是托盘应用程序,但您可以从命令行运行它。只需根据需要更改物理路径:

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

于 2008-11-19T12:18:51.513 回答
1

我自己没有使用过这个,所以我不能 100% 确定它会解决你的问题。但是看看 .NET 中的 System.DirectoryServices。它可以访问 IIS。

目录服务的 MSDN 帮助

于 2008-11-19T10:19:41.380 回答
1

那么,对于 IIS 7,有一个 .NET 包装器可以通过 .NET 启用 IIS 管理。有关详细信息,请参阅此链接,

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

于 2008-11-23T11:07:01.987 回答