IISメタベースと対話/編集する.NETライブラリまたはAPIはありますか?
質問
...または、「XMLチョッピング」という独自のローリングを行ってしまいました。関数。小さなタスクトレイアプリを作成して、Virual Directoryをハードディスク上のいくつかのフォルダーの1つにすばやくポイントできるようにします。
ビットの背景:
開発マシンにコードベースの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/
動作するためには、アプリは同じルートディレクトリに存在する必要があります。 so:
http://localhost/app/
作業しているブランチに応じて、IISマネージャーに移動して、上記の3つのパスのいずれかに / app /
ディレクトリを再ポイントします。私のためにクイックアプリを用意しておくと便利だと思いました。
解決
OK ...これはトレイアプリではありませんが、コマンドラインから実行できます。必要に応じて物理パスを変更します。
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
他のヒント
これを自分で使用したことがないので、問題が解決するかどうかは100%確信できません。しかし、.NETのSystem.DirectoryServicesを見てください。 IISにアクセスできます。
まあ、IIS 7には、.NETを介したIIS管理を可能にする.NETラッパーがあります。詳細については、このリンクを参照してください
http://learn.iis.net/ page.aspx / 165 / how-to-use-microsoftwebadministration /
IISの以前のバージョン(5または6)には、ADSIおよびWMIインターフェイスが提供されています。
所属していません StackOverflow