设为首页 收藏本站
查看: 771|回复: 0

[经验分享] C#操作IIS代码

[复制链接]

尚未签到

发表于 2015-8-15 11:07:40 | 显示全部楼层 |阅读模式
//在做系统开发的过程中,我们经常会遇到用asp.net来操作IIS,
//如新建虚拟目录、更改虚拟目录的属性、删除虚拟目录等操作,现在分析如下:
//假如虚拟目录名为"Webtest",先在项目中引用   
//System.DirectoryServices.dll
using System;
using System.DirectoryServices;
using System.Collections;
namespace WayControls.IIS
{
/// <summary>
/// IISWebServer的状态
/// </summary>
public enum IISServerState
{
  /// <summary>
  ///
  /// </summary>
  Starting = 1,
  /// <summary>
  ///
  /// </summary>
  Started = 2,
  /// <summary>
  ///
  /// </summary>
  Stopping = 3,
  /// <summary>
  ///
  /// </summary>
  Stopped = 4,
  /// <summary>
  ///
  /// </summary>
  Pausing = 5,
  /// <summary>
  ///
  /// </summary>
  Paused = 6,
  /// <summary>
  ///
  /// </summary>
  Continuing = 7

}
/// <summary>
/// IISManagement 的摘要说明。
/// </summary>
public class IISManagement
{
  /// <summary>
  ///
  /// </summary>
  public IISWebServerCollection WebServers = new IISWebServerCollection();
  internal static string Machinename = "localhost";
  /// <summary>
  ///
  /// </summary>
  public IISManagement()
  {
   start();
  }


  /// <summary>
  ///
  /// </summary>
  /// <param name="MachineName">机器名,默认值为localhost</param>
  public IISManagement(string MachineName)
  {
   if( MachineName.ToString() != "" )
    Machinename = MachineName;
   start();
  }
private void start()
  {
      
   DirectoryEntry Service = new DirectoryEntry("IIS://" + Machinename + "/W3SVC");
   DirectoryEntry Server;
   DirectoryEntry Root = null;
   DirectoryEntry VirDir;
   IEnumerator ie = Service.Children.GetEnumerator();
   IEnumerator ieRoot;
   IISWebServer item;
   IISWebVirtualDir item_virdir;
   bool finded = false;
   while(ie.MoveNext())
   {
    Server = (DirectoryEntry)ie.Current;
    if( Server.SchemaClassName == "IIsWebServer" )
    {
     item = new IISWebServer();
     item.index = Convert.ToInt32(Server.Name);

     item.ServerComment = (string)Server.Properties["ServerComment"][0];
     item.AccessRead = (bool)Server.Properties["AccessRead"][0];
     item.AccessScript = (bool)Server.Properties["AccessScript"][0];
     item.DefaultDoc = (string)Server.Properties["DefaultDoc"][0];
     item.EnableDefaultDoc = (bool)Server.Properties["EnableDefaultDoc"][0];
     item.EnableDirBrowsing = (bool)Server.Properties["EnableDirBrowsing"][0];
     ieRoot = Server.Children.GetEnumerator();

     while( ieRoot.MoveNext() )
     {
      Root = (DirectoryEntry)ieRoot.Current;
      if( Root.SchemaClassName == "IIsWebVirtualDir" )
      {
       finded = true;
       break;
      }
     }
     if( finded )
     {
      item.Path = Root.Properties["path"][0].ToString();
     }
     
     item.Port = Convert.ToInt32( ((string)Server.Properties["Serverbindings"][0]).Substring(1 ,((string)Server.Properties["Serverbindings"][0]).Length - 2 ) );
     this.WebServers.Add_(item);
     ieRoot = Root.Children.GetEnumerator();
     while( ieRoot.MoveNext() )
     {
      VirDir = (DirectoryEntry)ieRoot.Current;
      if( VirDir.SchemaClassName != "IIsWebVirtualDir" && VirDir.SchemaClassName != "IIsWebDirectory" )
       continue;
      item_virdir = new IISWebVirtualDir(item.ServerComment);
      item_virdir.Name = VirDir.Name;
      item_virdir.AccessRead = (bool)VirDir.Properties["AccessRead"][0];
      item_virdir.AccessScript = (bool)VirDir.Properties["AccessScript"][0];
      item_virdir.DefaultDoc = (string)VirDir.Properties["DefaultDoc"][0];
      item_virdir.EnableDefaultDoc = (bool)VirDir.Properties["EnableDefaultDoc"][0];
      if( VirDir.SchemaClassName == "IIsWebVirtualDir" )
      {
       item_virdir.Path = (string)VirDir.Properties["Path"][0];
      }
      else if( VirDir.SchemaClassName == "IIsWebDirectory" )
      {
       item_virdir.Path = Root.Properties["Path"][0] + "\\" + VirDir.Name;
      }
      item.WebVirtualDirs.Add_(item_virdir);
     }
    }
   }
  }

  /// <summary>
  /// 创建站点
  /// </summary>
  /// <param name="iisServer"></param>
  public static void CreateIISWebServer(IISWebServer iisServer)
  {
   if( iisServer.ServerComment.ToString() == "" )
    throw(new Exception("IISWebServer的ServerComment不能为空!"));
   DirectoryEntry Service = new DirectoryEntry("IIS://" + IISManagement.Machinename + "/W3SVC");
   DirectoryEntry Server;
   int i = 0 ;
   IEnumerator ie = Service.Children.GetEnumerator();

   while(ie.MoveNext())
   {
    Server = (DirectoryEntry)ie.Current;
    if( Server.SchemaClassName == "IIsWebServer" )
    {
     if( Convert.ToInt32(Server.Name) > i )
      i = Convert.ToInt32(Server.Name);
//     if( Server.Properties["Serverbindings"][0].ToString() == ":" + iisServer.Port + ":" )
//     {
//      Server.Invoke("stop",new object[0]);
//     }
    }
   }

   i++;

   try
   {
    iisServer.index = i;
    Server = Service.Children.Add(i.ToString() , "IIsWebServer");
    Server.Properties["ServerComment"][0] = iisServer.ServerComment;
    Server.Properties["Serverbindings"].Add(":" + iisServer.Port + ":");
    Server.Properties["AccessScript"][0] = iisServer.AccessScript;
    Server.Properties["AccessRead"][0] = iisServer.AccessRead;
    Server.Properties["EnableDirBrowsing"][0] = iisServer.EnableDirBrowsing;
    Server.Properties["DefaultDoc"][0] = iisServer.DefaultDoc;
    Server.Properties["EnableDefaultDoc"][0] = iisServer.EnableDefaultDoc;

    DirectoryEntry root = Server.Children.Add("Root","IIsWebVirtualDir");
    root.Properties["path"][0] = iisServer.Path;
   

    Service.CommitChanges();
    Server.CommitChanges();
    root.CommitChanges();
    root.Invoke("AppCreate2" , new object[1] {2});
    //Server.Invoke("start",new object[0]);
   }
   catch(Exception es)
   {
    throw(es);
   }
  }
/// <summary>
  /// 删除IISWebServer
  /// </summary>
  public static void RemoveIISWebServer(string ServerComment)
  {
   DirectoryEntry Service = new DirectoryEntry("IIS://" + IISManagement.Machinename + "/W3SVC");
   DirectoryEntry Server;
   IEnumerator ie = Service.Children.GetEnumerator();

   ServerComment = ServerComment.ToLower();
   while(ie.MoveNext())
   {
    Server = (DirectoryEntry)ie.Current;
    if( Server.SchemaClassName == "IIsWebServer" )
    {
     if( Server.Properties["ServerComment"][0].ToString().ToLower() == ServerComment )
     {
      Service.Children.Remove(Server);
      Service.CommitChanges();
      return ;
     }
    }
   }
  }

  /// <summary>
  /// 删除IISWebServer
  /// </summary>
  public static void RemoveIISWebServer(int index)
  {
   DirectoryEntry Service = new DirectoryEntry("IIS://" + IISManagement.Machinename + "/W3SVC");
   try
   {
    DirectoryEntry Server = new DirectoryEntry("IIS://" + IISManagement.Machinename + "/W3SVC/" + index);
    if( Server != null )
    {
     Service.Children.Remove(Server);
     Service.CommitChanges();
    }
    else
    {
     throw(new Exception("找不到此IISWebServer"));
    }
   }
   catch
   {
    throw(new Exception("找不到此IISWebServer"));
   }
  }

  /// <summary>
  /// 检查是否存在IISWebServer
  /// </summary>
  /// <param name="ServerComment">网站说明</param>
  /// <returns></returns>
  public static bool ExistsIISWebServer(string ServerComment)
  {
   ServerComment = ServerComment.Trim();
   DirectoryEntry Service = new DirectoryEntry("IIS://" + IISManagement.Machinename + "/W3SVC");
   DirectoryEntry Server = null;
   IEnumerator ie = Service.Children.GetEnumerator();

   string comment;
   while(ie.MoveNext())
   {
    Server = (DirectoryEntry)ie.Current;
    if( Server.SchemaClassName == "IIsWebServer" )
    {
     comment = Server.Properties["ServerComment"][0].ToString().ToLower().Trim();
     if( comment == ServerComment.ToLower() )
     {
      return true;
     }
    }
   }

   return false;
  }
/// <summary>
/// 返回指定的IISWebServer
/// </summary>
/// <param name="ServerComment"></param>
/// <returns></returns>
internal static DirectoryEntry returnIISWebserver(string ServerComment)
{
ServerComment = ServerComment.Trim();
DirectoryEntry Service = new DirectoryEntry("IIS://" + IISManagement.Machinename + "/W3SVC");
DirectoryEntry Server = null;
IEnumerator ie = Service.Children.GetEnumerator();

string comment;
while(ie.MoveNext())
{
Server = (DirectoryEntry)ie.Current;
if( Server.SchemaClassName == "IIsWebServer" )
{
comment = Server.Properties["ServerComment"][0].ToString().ToLower().Trim();
if( comment == ServerComment.ToLower() )
{
return Server;
}
}
}

return null;
}


/// <summary>
///  返回指定的IISWebServer
/// </summary>
/// <param name="index"></param>
/// <returns></returns>
internal static DirectoryEntry returnIISWebserver(int index)
{
DirectoryEntry Server = new DirectoryEntry("IIS://" + IISManagement.Machinename + "/W3SVC/" + index);
try
{
IEnumerator ie = Server.Children.GetEnumerator();
return Server;
}
catch
{
return null;
}
}

private static DirectoryEntry getRoot( DirectoryEntry Server )
{
foreach( DirectoryEntry child in Server.Children )
{
string name = child.Name.ToLower();
if( name == "iiswebvirtualdir" || name == "root" )
{
return child;
}
}
return null;
}

/// <summary>
/// 修改与给定的IISWebServer具有相同网站说明的站点配置
/// </summary>
/// <param name="iisServer">给定的IISWebServer</param>
public static void EditIISWebServer(IISWebServer iisServer)
{
if( iisServer.index == -1 )
throw(new Exception("找不到给定的站点!"));
DirectoryEntry Service = new DirectoryEntry("IIS://" + IISManagement.Machinename + "/W3SVC");
DirectoryEntry Server;

IEnumerator ie = Service.Children.GetEnumerator();

while(ie.MoveNext())
{
Server = (DirectoryEntry)ie.Current;
if( Server.SchemaClassName == "IIsWebServer" )
{
if( Server.Properties["Serverbindings"][0].ToString() == ":" + iisServer.Port + ":" )
{
Server.Invoke("stop",new object[0]);
}
}
}

Server = returnIISWebserver(iisServer.index);
if( Server == null )
{
throw( new Exception("找不到给定的站点!"));
}

try
{

Server.Properties["ServerComment"][0] = iisServer.ServerComment;
Server.Properties["Serverbindings"][0] = ":" + iisServer.Port + ":";
Server.Properties["AccessScript"][0] = iisServer.AccessScript;
Server.Properties["AccessRead"][0] = iisServer.AccessRead;
Server.Properties["EnableDirBrowsing"][0] = iisServer.EnableDirBrowsing;
Server.Properties["DefaultDoc"][0] = iisServer.DefaultDoc;
Server.Properties["EnableDefaultDoc"][0] = iisServer.EnableDefaultDoc;

DirectoryEntry root = getRoot( Server );

Server.CommitChanges();
if( root != null )
{
root.Properties["path"][0] = iisServer.Path;
root.CommitChanges();
}

Server.Invoke("start",new object[0]);
}
catch(Exception es)
{
throw(es);
}
}
/// <summary>
  /// 返回所有站点的网站说明
  /// </summary>
  /// <returns></returns>
  public static ArrayList returnIISServerComment()
  {
   DirectoryEntry Service = new DirectoryEntry("IIS://" + IISManagement.Machinename + "/W3SVC");
   DirectoryEntry Server;

   ArrayList list = new ArrayList();
   IEnumerator ie = Service.Children.GetEnumerator();

   while(ie.MoveNext())
   {
    Server = (DirectoryEntry)ie.Current;
    if( Server.SchemaClassName == "IIsWebServer" )
    {
     list.Add(Server.Properties["ServerComment"][0]);
    }
   }

   return list;
  }

  /// <summary>
  /// 创建虚拟目录
  /// </summary>
  /// <param name="iisVir"></param>
  /// <param name="deleteIfExist"></param>
  public static void CreateIISWebVirtualDir(IISWebVirtualDir iisVir , bool deleteIfExist)
  {
   if( iisVir.Parent == null )
    throw(new Exception("IISWebVirtualDir没有所属的IISWebServer!"));

   DirectoryEntry Service = new DirectoryEntry("IIS://" + IISManagement.Machinename + "/W3SVC");
   DirectoryEntry Server = returnIISWebserver(iisVir.Parent.index);
   
   if( Server == null )
   {
    throw( new Exception("找不到给定的站点!"));
   }
   
   Server = getRoot( Server );
   if( deleteIfExist )
   {
    foreach( DirectoryEntry VirDir in Server.Children )
    {
     if( VirDir.Name.ToLower().Trim() == iisVir.Name.ToLower() )
     {
      Server.Children.Remove(VirDir);
      Server.CommitChanges();
      break;
     }
    }
   }

   try
   {
    DirectoryEntry vir;
    vir = Server.Children.Add(iisVir.Name , "IIsWebVirtualDir");
    vir.Properties["Path"][0] = iisVir.Path;
    vir.Properties["DefaultDoc"][0] = iisVir.DefaultDoc;
    vir.Properties["EnableDefaultDoc"][0] = iisVir.EnableDefaultDoc;
    vir.Properties["AccessScript"][0] = iisVir.AccessScript;
    vir.Properties["AccessRead"][0] = iisVir.AccessRead;
    vir.Invoke("AppCreate2" , new object[1] {2});

    Server.CommitChanges();
    vir.CommitChanges();

   }
   catch(Exception es)
   {
    throw(es);
   }

  }

  /// <summary>
  /// 删除虚拟目录
  /// </summary>
  /// <param name="WebServerComment">站点说明</param>
  /// <param name="VirtualDir">虚拟目录名称</param>
  public static void RemoveIISWebVirtualDir(string WebServerComment, string VirtualDir)
  {
   VirtualDir = VirtualDir.ToLower();
   DirectoryEntry Service = new DirectoryEntry("IIS://" + IISManagement.Machinename + "/W3SVC");
   DirectoryEntry Server = returnIISWebserver(WebServerComment);

   if (Server == null)
   {
    throw (new Exception("找不到给定的站点!"));
   }

   Server = getRoot(Server);
   foreach (DirectoryEntry VirDir in Server.Children)
   {
    if (VirDir.Name.ToLower().Trim() == VirtualDir)
    {
     Server.Children.Remove(VirDir);
     Server.CommitChanges();
     return;
    }
   }

   throw (new Exception("找不到给定的虚拟目录!"));
  }
  /// <summary>
  /// 删除虚拟目录
  /// </summary>
  /// <param name="iisVir"></param>
  public static void RemoveIISWebVirtualDir(IISWebVirtualDir iisVir)
  {
   DirectoryEntry Service = new DirectoryEntry("IIS://" + IISManagement.Machinename + "/W3SVC");
   DirectoryEntry Server = returnIISWebserver(iisVir.Parent.index);
   
   if( Server == null )
   {
    throw(new Exception( "找不到给定的站点!"));
   }
   
   Server = getRoot( Server );
   foreach( DirectoryEntry VirDir in Server.Children )
   {
    if( VirDir.Name.ToLower().Trim() == iisVir.Name.ToLower() )
    {
     Server.Children.Remove(VirDir);
     Server.CommitChanges();
     return;
    }
   }

   throw(new Exception( "找不到给定的虚拟目录!"));
  }

}
/// <summary>
///
/// </summary>
public class IISWebServerCollection:CollectionBase
{
  
  /// <summary>
  ///
  /// </summary>
  public IISWebServer this[int Index]
  {
   get
   {
    return (IISWebServer)this.List[Index];
   
   }
  }

  /// <summary>
  ///
  /// </summary>
  public IISWebServer this[string ServerComment]
  {
   get
   {
    ServerComment = ServerComment.ToLower().Trim();
    IISWebServer list;
    for(int i = 0 ; i < this.List.Count ; i++)
    {
     list = (IISWebServer)this.List;
     if(list.ServerComment.ToLower().Trim() == ServerComment)
      return list;
    }
    return null;
   }
  }

  internal void Add_(IISWebServer WebServer)
  {
   this.List.Add(WebServer);
  }

  /// <summary>
  ///
  /// </summary>
  /// <param name="WebServer"></param>
  public void Add(IISWebServer WebServer)
  {
   try
   {
    this.List.Add(WebServer);
    IISManagement.CreateIISWebServer(WebServer);
   }
   catch
   {
    throw(new Exception("发生意外错误,可能是某节点将该节点的上级节点作为它自己的子级插入"));
   }
   
  }

  /// <summary>
  /// 是否包含指定的网站
  /// </summary>
  /// <param name="ServerComment"></param>
  /// <returns></returns>
  public bool Contains(string ServerComment)
  {
   ServerComment = ServerComment.ToLower().Trim();
   for( int i = 0 ; i < this.List.Count ; i++ )
   {
    IISWebServer server = this;
    if( server.ServerComment.ToLower().Trim() == ServerComment )
     return true;
   }
   return false;
  }

  /// <summary>
  /// 是否包含指定的网站
  /// </summary>
  /// <param name="index"></param>
  /// <returns></returns>
  public bool Contains(int index)
  {
   for( int i = 0 ; i < this.List.Count ; i++ )
   {
    IISWebServer server = this;
    if( server.index == index )
     return true;
   }
   return false;
  }

  /// <summary>
  ///
  /// </summary>
  /// <param name="WebServers"></param>
  public void AddRange(IISWebServer [] WebServers)
  {
   for(int i = 0 ; i <= WebServers.GetUpperBound(0) ; i++)
   {
    Add(WebServers);
   }
  }

  /// <summary>
  ///
  /// </summary>
  /// <param name="WebServer"></param>
  public void Remove(IISWebServer WebServer)
  {
   for(int i=0;i<this.List.Count;i++)
   {
    if((IISWebServer)this.List == WebServer)
    {
     this.List.RemoveAt(i);
     return;
    }
   }
   IISManagement.RemoveIISWebServer(WebServer.index);
  }
}


//////////////////
/// <summary>
///
/// </summary>
public class IISWebServer
{
  /// <summary>
  ///
  /// </summary>
  internal int index = -1;
  /// <summary>
  ///
  /// </summary>
  public IISWebVirtualDirCollection WebVirtualDirs ;
  /// <summary>
  /// 网站说明
  /// </summary>
  public string ServerComment = "Way";
  /// <summary>
  /// 脚本支持
  /// </summary>
  public bool AccessScript = true;
  /// <summary>
  /// 读取
  /// </summary>
  public bool AccessRead = true;
  /// <summary>
  /// 物理路径
  /// </summary>
  public string Path = "c:\\";
  /// <summary>
  /// 端口
  /// </summary>
  public int Port = 80;
  /// <summary>
  /// 目录浏览
  /// </summary>
  public bool EnableDirBrowsing = false;
  /// <summary>
  /// 默认文档
  /// </summary>
  public string DefaultDoc = "index.aspx";
  /// <summary>
  /// 使用默认文档
  /// </summary>
  public bool EnableDefaultDoc =true;

  /// <summary>
  /// IISWebServer的状态
  /// </summary>
  public IISServerState ServerState
  {
   get
   {
    DirectoryEntry server = IISManagement.returnIISWebserver(this.index);
    if( server == null )
     throw(new Exception("找不到此IISWebServer"));
    switch (server.Properties["ServerState"][0].ToString())
    {
     case "2":
      return IISServerState.Started;
     case "4":
      return IISServerState.Stopped;
     case "6":
      return IISServerState.Paused;
    }
    return IISServerState.Stopped;
   }
  }

  /// <summary>
  /// 停止IISWebServer
  /// </summary>
  public void Stop()
  {
   DirectoryEntry Server;
   if( index == -1 )
    throw(new Exception("在IIS找不到此IISWebServer!"));
   try
   {
    Server = new DirectoryEntry("IIS://" + IISManagement.Machinename + "/W3SVC/" + index);
    if( Server != null )
     Server.Invoke("stop" , new object[0]);
    else
     throw(new Exception("在IIS找不到此IISWebServer!"));
   }
   catch
   {
    throw(new Exception("在IIS找不到此IISWebServer!"));
   }
  }

  /// <summary>
  /// 把基本信息的更改更新到IIS
  /// </summary>
  public void CommitChanges()
  {
   IISManagement.EditIISWebServer(this);
  }

  /// <summary>
  /// 启动IISWebServer
  /// </summary>
  public void Start()
  {
   if( index == -1 )
    throw(new Exception("在IIS找不到此IISWebServer!"));
   
   DirectoryEntry Service = new DirectoryEntry("IIS://" + IISManagement.Machinename + "/W3SVC");
   DirectoryEntry Server;
   IEnumerator ie = Service.Children.GetEnumerator();

   while(ie.MoveNext())
   {
    Server = (DirectoryEntry)ie.Current;
    if( Server.SchemaClassName == "IIsWebServer" )
    {
     if( Server.Properties["Serverbindings"][0].ToString() == ":" + this.Port + ":" )
     {
      Server.Invoke("stop",new object[0]);
     }
    }
   }

   try
   {
    Server = new DirectoryEntry("IIS://" + IISManagement.Machinename + "/W3SVC/" + index);
    if( Server != null )
     Server.Invoke("start" , new object[0]);
    else
     throw(new Exception("在IIS找不到此IISWebServer!"));
   }
   catch
   {
    throw(new Exception("在IIS找不到此IISWebServer!"));
   }
  }

  /// <summary>
  ///
  /// </summary>
  public IISWebServer()
  {
   WebVirtualDirs = new IISWebVirtualDirCollection(this);
  }
///////////////////////////////////////////
}
/// <summary>
///
/// </summary>
public class IISWebVirtualDirCollection:CollectionBase
{
  /// <summary>
  ///
  /// </summary>
  public IISWebServer Parent = null;

  /// <summary>
  ///
  /// </summary>
  public IISWebVirtualDir this[int Index]
  {
   get
   {
    return (IISWebVirtualDir)this.List[Index];
   
   }
  }

  /// <summary>
  ///
  /// </summary>
  public IISWebVirtualDir this[string Name]
  {
   get
   {
    Name = Name.ToLower();
    IISWebVirtualDir list;
    for(int i = 0 ; i < this.List.Count ; i++)
    {
     list = (IISWebVirtualDir)this.List;
     if(list.Name.ToLower() == Name)
      return list;
    }
    return null;
   }
  }


  internal void Add_(IISWebVirtualDir WebVirtualDir)
  {
   try
   {
    this.List.Add(WebVirtualDir);
   }
   catch
   {
    throw(new Exception("发生意外错误,可能是某节点将该节点的上级节点作为它自己的子级插入"));
   }
   
  }

  /// <summary>
  ///
  /// </summary>
  /// <param name="WebVirtualDir"></param>
  public void Add(IISWebVirtualDir WebVirtualDir)
  {
   WebVirtualDir.Parent = this.Parent;
   try
   {
    this.List.Add(WebVirtualDir);
   
   }
   catch
   {
    throw(new Exception("发生意外错误,可能是某节点将该节点的上级节点作为它自己的子级插入"));
   }
   IISManagement.CreateIISWebVirtualDir(WebVirtualDir , true);
   
  }

  /// <summary>
  ///
  /// </summary>
  /// <param name="WebVirtualDirs"></param>
  public void AddRange(IISWebVirtualDir [] WebVirtualDirs)
  {
   for(int i = 0 ; i <= WebVirtualDirs.GetUpperBound(0) ; i++)
   {
    Add(WebVirtualDirs);
   }
  }

  /// <summary>
  ///
  /// </summary>
  /// <param name="WebVirtualDir"></param>
  public void Remove(IISWebVirtualDir WebVirtualDir)
  {
   for(int i=0;i<this.List.Count;i++)
   {
    if((IISWebVirtualDir)this.List == WebVirtualDir)
    {
     this.List.RemoveAt(i);
     IISManagement.RemoveIISWebVirtualDir(WebVirtualDir);
     return;
    }
   }
  }

  /// <summary>
  ///
  /// </summary>
  /// <param name="Parent"></param>
  public IISWebVirtualDirCollection(IISWebServer Parent)
  {
   this.Parent = Parent;
  }
}


///////////////
/// <summary>
///
/// </summary>
public class IISWebVirtualDir
{
  /// <summary>
  ///
  /// </summary>
  public IISWebServer Parent = null;
  /// <summary>
  /// 虚拟目录名称
  /// </summary>
  public string Name = "Way";
  /// <summary>
  /// 读取
  /// </summary>
  public bool AccessRead = true;
  /// <summary>
  /// 脚本支持
  /// </summary>
  public bool AccessScript = true;
  /// <summary>
  /// 物理路径
  /// </summary>
  public string Path = "c:\\";
  /// <summary>
  /// 默认文档
  /// </summary>
  public string DefaultDoc = "index.aspx";
  /// <summary>
  /// 使用默认文档
  /// </summary>
  public bool EnableDefaultDoc =true;
  /// <summary>
  /// 所属的网站的网站说明
  /// </summary>
  public string WebServer = "";

  /// <summary>
  ///
  /// </summary>
  /// <param name="WebServerName"></param>
  public IISWebVirtualDir(string WebServerName)
  {
   if( WebServerName.ToString() == "" )
    throw(new Exception("WebServerName不能为空!"));
   this.WebServer = WebServerName;
  }
  /// <summary>
  ///
  /// </summary>
  public IISWebVirtualDir()
  {

  }
}
}

以下是一个调用例子
//添加新站点
IISManagement iisMan = new IISManagement("localhost");
IISWebServer IISserver;
IISserver = new IISWebServer();
IISserver.ServerComment = "我的站点";
IISserver.Path = "d:\\webSites\\test";
IISserver.EnableDefaultDoc = true;
IISserver.DefaultDoc = "myIndex.aspx";
iisMan.WebServers.Add(IISserver);

//添加虚拟目录
IISWebVirtualDir virDir_ = new IISWebVirtualDir();
virDir_.Path = "d:\\mytest";
virDir_.Name = "新的虚拟目录名称";
virDir_.DefaultDoc = "default.aspx";
IISserver.WebVirtualDirs.Add(virDir_);

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-99286-1-1.html 上篇帖子: SharePoint2007安装图文详解一:IIS安装 下篇帖子: IIS Express 不允许的父路径(原创)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表