/// <summary> /// 获取虚拟目录集合 /// </summary> /// <param name="des"></param> /// <returns></returns> private VirtualDirectories GetVirDirs(DirectoryEntries des) { VirtualDirectories tmpdirs = new VirtualDirectories(); foreach (DirectoryEntry de in des) { if (de.SchemaClassName == "IIsWebVirtualDir") { VirtualDirectory vd = new VirtualDirectory(); vd.Name = de.Name; vd.AccessRead = (bool)de.Properties["AccessRead"][0]; vd.AccessExecute = (bool)de.Properties["AccessExecute"][0]; vd.AccessWrite = (bool)de.Properties["AccessWrite"][0]; vd.AnonymousUserName = (string)de.Properties["AnonymousUserName"][0]; vd.AnonymousUserPass = (string)de.Properties["AnonymousUserName"][0]; vd.AuthBasic = (bool)de.Properties["AuthBasic"][0]; vd.AuthNtlm = (bool)de.Properties["AuthNTLM"][0]; vd.ContentIndexed = (bool)de.Properties["ContentIndexed"][0]; vd.EnableDefaultDoc = (bool)de.Properties["EnableDefaultDoc"][0]; vd.EnableDirBrowsing = (bool)de.Properties["EnableDirBrowsing"][0]; vd.AccessSsl = (bool)de.Properties["AccessSSL"][0]; vd.AccessScript = (bool)de.Properties["AccessScript"][0]; vd.Path = (string)de.Properties["Path"][0]; vd.Flag = 0; vd.DefaultDoc = (string)de.Properties["DefaultDoc"][0]; tmpdirs.Add(vd.Name, vd); } } return(tmpdirs); }
///<summary> ///私有方法,连接服务器 ///</summary> private void ConnectToServer() { string strPath = "IIS://" + _server + "/W3SVC/" + _website + "/ROOT"; try { this.Rootfolder = new DirectoryEntry(strPath); _virdirs = GetVirDirs(this.Rootfolder.Children); } catch (Exception e) { throw new Exception("Can't connect to the server [" + _server + "] ...", e); } }
/// <summary> /// 执行批量更新 /// </summary> /// <param name="vds"></param> private void BatchUpdate(VirtualDirectories vds) { _batchflag = true; foreach (object item in vds.Values) { VirtualDirectory vd = (VirtualDirectory)item; switch (vd.Flag) { case 0: break; case 1: Create(vd); break; case 2: Update(vd); break; } } _batchflag = false; }
/// <summary> /// 重载一个:-) /// </summary> /// <param name="vds"></param> public void UpdateBatch(VirtualDirectories vds) { BatchUpdate(vds); }