我正在使用C#开发基于Web的部署工具,可以在IIS 7上远程部署应用程序。
现在,我已经能够成功部署应用程序了。但是,在尝试设置权限之前,我需要检查已部署的应用程序是否有特定目录(因为该工具将部署不同的应用程序,这些应用程序可能有或可能没有该文件夹)。
我采取了两种方法:
我查找了可以在
ServerManager
命名空间下使用的类。我可以使用以下代码获取在特定应用程序池下部署的应用程序的句柄:var iis = ServerManager.OpenRemote("serverName")
var iisApplication = iis.Sites[site].Applications["appName"];
.现在,我可以使用以下代码获取应用程序下的虚拟目录:
var virtualDirectory = iisApplication.VirtualDirectories;
但是,我无法看到位于该虚拟目录下的很多文件夹。例如,我的应用程序部署为test,
iisApplication.VirtualDirectories.First()
给出的结果是/test
。我想要访问的是/test/_ApplicationLogs
,这是我想要设置权限的目录。我的下一个尝试是使用
DirectoryEntry
。但是,我无法找到用于我的应用程序的元数据路径。在IIS 7中是否有标准的元数据路径?对于本地部署的名为
test
的应用程序,元数据路径是什么?我能否获取所有子级,以便我可以使用DirectoryEntry.Exists
?