環境:
- C#
- 互換モードの IIS6 または IIS7
.
私がやろうとしていること:
特定の IIS Web アプリケーションを見つけて、
- 親サイトを閉鎖
- Web アプリケーションの物理パスにあるファイルの追加/置換/削除 (つまり、更新の適用)
- 親サイトを立ち上げる
.
これは私が持っているものです:
DirectoryEntry IIsEntities = new DirectoryEntry("IIS://localhost/W3SVC");
foreach (DirectoryEntry IIsSite in IIsEntities.Children)
{
if (IIsSite.SchemaClassName == "IIsWebServer")
{
foreach (DirectoryEntry IIsEntity in IIsSite.Children)
{
if (IIsEntity.SchemaClassName == "IIsWebVirtualDir")
{
foreach (DirectoryEntry IIsApp in IIsEntity.Children)
{
yield return new IISWebsite
(
IIsSite.Properties["ServerComment"].Value.ToString(),
IIsApp.Name,
IIsApp.Path,
(ServerState) IIsSite.Properties["ServerState"].Value
);
}
}
}
}
}
これにより、ユーザーが更新するサイトを選択できる ComboBox がフィードされます。ここまでは順調ですね。しかし、私が使用できないIIsApp.Path
ようなパスを私に与えてくれます。IIS://localhost/W3SVC/1/ROOT/Website
Directory.GetFiles
.
私が探しているもの:
仮想パスを物理パスに変換することで、Web アプリケーション内のファイルを更新する方法。しかし、仮想パスを使用してファイルを置き換えることができれば、変換する必要さえないかもしれません...