是否有 .NET 库或 API 可以与/编辑 IIS 元数据库进行交互?
Posted
技术标签:
【中文标题】是否有 .NET 库或 API 可以与/编辑 IIS 元数据库进行交互?【英文标题】:Is there a .NET Library or API to interact with/Edit the IIS Metabase? 【发布时间】:2008-11-19 10:10:55 【问题描述】:...或者我是否坚持使用我自己的“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/
根据我正在处理的分支,我通过进入 IIS 管理器将/app/
目录重新指向上面列出的 3 个路径之一。只是觉得有一个快速应用来帮我做这件事会很方便。
【问题讨论】:
【参考方案1】:好的...这不是托盘应用程序,但您可以从命令行运行它。只需根据需要更改物理路径:
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
等
【讨论】:
Kudos Kevin,应该很容易将它破解到我已经拥有的一个小任务托盘应用程序中。非常感谢。【参考方案2】:我自己没有使用过这个,所以我不能 100% 确定它会解决你的问题。但是看看 .NET 中的 System.DirectoryServices。它可以访问 IIS。
MSDN help for DirectoryServices
【讨论】:
【参考方案3】:嗯,对于 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
【讨论】:
以上是关于是否有 .NET 库或 API 可以与/编辑 IIS 元数据库进行交互?的主要内容,如果未能解决你的问题,请参考以下文章