IIS 7 にアプリケーションをリモートで展開する C# の Web ベースの展開ツールに取り組んでいます。
アプリケーションをデプロイできるところまで来ました。ここで、デプロイされたアプリケーションに特定のディレクトリがあるかどうかを確認してから、アクセス許可を設定する必要があります (ツールは、そのフォルダーを持っている場合と持っていない場合があるさまざまなアプリケーションをデプロイするため)。
私が取った2つのアプローチがあります:
ServerManager
名前空間で使用できるクラスを確認しました。以下を使用して、特定のアプリケーション プールにデプロイされたアプリケーションのハンドルを取得できます。var iis = ServerManager.OpenRemote("serverName")
var iisApplication = iis.Sites[site].Applications["appName"];
.これで、次を使用してアプリケーションの下にある仮想ディレクトリを取得できます。
var virtualDirectory = iisApplication.VirtualDirectories;
しかし、その仮想ディレクトリの下にある多くのフォルダーを見ることができません。たとえば、私のアプリケーションはテストとしてデプロイされ
iisApplication.VirtualDirectories.First()
、/test
./test/_ApplicationLogs
アクセス許可を設定したいディレクトリを指定できるようにしたかったのです。私の次のアプローチは、 を使用することでした
DirectoryEntry
。ここで、アプリケーションに使用するメタベース パスを特定できません。IIS 7 で使用される標準のメタベース パスはありますか?ローカルにデプロイされたアプリケーションの場合
test
、メタベース パスは何になりますか? そして、使用できるようにすべての子を取得できますDirectoryEntry.Exists
か?