环境:
- 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
);
}
}
}
}
}
这提供了一个组合框,用户可以在其中选择他们想要更新的站点。到目前为止,一切都很好。但是这IIsApp.Path
给了我一条IIS://localhost/W3SVC/1/ROOT/Website
我不能使用Directory.GetFiles
或类似的路径。
.
我在找什么:
一种通过将虚拟路径转换为物理路径来更新 Web 应用程序中的文件的方法。但如果我可以使用虚拟路径替换文件,也许我什至不需要转换它......