1

如何以编程方式(使用 C#)修改 IIS 6.0 中默认网站的默认物理文件位置?

MSDN 有一篇关于此的文章。

您可以使用“网站属性”对话框的“主目录”选项卡来指定网站主目录的路径以及主目录是位于本地计算机上还是位于网络计算机上。默认的网站主目录是 SystemDrive:\Inetpub\Wwwroot。

我如何以编程方式实现这一目标?

更新:我可以在 IIS 7 及更高版本中使用ServerManager类。我进行了很多研究,但找不到在 IIS 6 中执行此操作的特定方法。任何帮助将不胜感激。

这是我在 IIS 7 中的做法

using (ServerManager iisManager = new ServerManager())
 {
   var site = iisManager.Sites["Default Web Site"];
   site.Applications["/"].VirtualDirectories["/"].PhysicalPath = "C:\MyFolder";
   site.ApplicationDefaults.ApplicationPoolName = "DefaultAppPool";
   site.ServerAutoStart = true;
   iisManager.CommitChanges();
 }
4

2 回答 2

0

利用Microsoft.Web.Administration

ServerManager serverManager = new ServerManager();
serverManager.remove("yoursitename");
serverManager.Update();
serverManager.Sites.Add("yoursitename", "protocol", "port", "yourNewLocation");
serverManager.Update();

但是,我认为它只适用于 IIS7+

于 2013-05-30T13:14:53.287 回答
0

我知道这将在 IIS 6 中帮助您。您需要找到物理文件位置的属性名称才能设置它,但这应该可以解决问题。metabasePath 变量中的 1 是 IIS 中站点的 id - 默认网站可能有不同的内容,因此请检查它。这是用 VB.net 编写的,但将其转换为 C# 是一项简单的任务。

dim metabasePath as String = "IIS://localhost/W3svc/1"
Private Sub SetProperty(ByVal metabasePath As String, ByVal propertyName As String, ByVal newValue As Object, clearCurrentValue As Boolean)
        Dim path As DirectoryEntry
        path = New DirectoryEntry(metabasePath)
        If clearCurrentValue Then path.Properties(propertyName).Clear()
        path.Properties(propertyName).Add(newValue)
        path.CommitChanges()
End Sub
于 2016-04-08T17:46:26.897 回答