我们使用ADSI来操作IIS的时候,需要提供他们的Path。比如默认本机80端口的默认站点的目录路径就是:IIS://localhost/w3svc/1/root
它的格式是:
IIS://ComputerName/Service/Website/Directory
ComputerName:即操作的服务器的名字,可以是名字也可以是IP,经常用的就是localhost
Service:即操作的服务器,IIS中有Web,也有FTP,还有SMTP这些服务,我们主要是操作IIS的Web功能,因此此处就是”W3SVC”,如果是FTP则应是”MSFTPSVC”
WebSite:一个IIS服务中可以包括很多的站点,这个就用于设置操作的站点。他的值是一个数字,默认是1,表示缺省站点,如果有其它,也是数字。
但需要注意的是,并不是自增。后面会有一个小程序获得这个值。
Directory:要操作的目录名称,一个站点一般顶层目录为”ROOT”,其它目录则是他的孩子(Child)。
以上资料摘自飞刀的文章,具体看:
http://aspcool.com/lanmu/browse1.asp?ID=914&bbsuser=csharp
http://aspcool.com/lanmu/browse1.asp?ID=915&bbsuser=csharp
由于上面的WebSite并不是简单的自增。我们要知道某台机子上所有站点对应的值,可以通过下面的小程序获得这个值:
using System.DirectoryServices; …….. DirectoryEntry root = new DirectoryEntry(“IIS://localhost/W3SVC”); foreach(DirectoryEntry dir in root.Children) { if(dir.SchemaClassName == “IIsWebServer”) { string ww = dir.Properties["ServerComment"].Value.ToString(); Response.Write (string.Format(“IIS://localhost/W3SVC/{0}/ROOT/ {1}<br>”,dir.Name,ww)); } }
当然,你想获得更多的属性值,可以通过
dir.Properties[] 去获得。
为了说明这里的 WebSite 并不是自增的,下面看我在我本机执行上面程序的结果。
IIS://localhost/W3SVC/1/ROOT/ Default Web Site IIS://localhost/W3SVC/1307630583/ROOT/ MyWeb81 IIS://localhost/W3SVC/1307630584/ROOT/ MyWeb82 IIS://localhost/W3SVC/1307630585/ROOT/ MyWeb83 IIS://localhost/W3SVC/1307630586/ROOT/ MyWeb84 IIS://localhost/W3SVC/1307630587/ROOT/ MyWeb85 IIS://localhost/W3SVC/1307630683/ROOT/ MyWeb90 IIS://localhost/W3SVC/1307630684/ROOT/ MyWeb91 IIS://localhost/W3SVC/1307630685/ROOT/ MyWeb92 IIS://localhost/W3SVC/1307630686/ROOT/ MyWeb93 IIS://localhost/W3SVC/1758797915/ROOT/ ghj1976.net IIS://localhost/W3SVC/2/ROOT/ Microsoft SharePoint Administration IIS://localhost/W3SVC/2546/ROOT/ 94
各个的值都不一样。所以在使用这个路径的时候,不要想当然的以为是简单的自增。