附:北京公司招聘有经验的ASP.NET(c#)程序员,待遇无限制,按能力定位,公司地址在朝阳门地铁旁,有意请发送简历到本人邮箱[email protected] 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();
}

解决方案 »

  1.   

    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);
    }
    }
      

  2.   

    /// <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;
    }
      

  3.   

    /// <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);
    }
    }
      

  4.   

    /// <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( "找不到给定的虚拟目录!"));
    } }
      

  5.   

    /// <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[i];
    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[i];
    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[i];
    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[i]);
    }
    } /// <summary>
    /// 
    /// </summary>
    /// <param name="WebServer"></param>
    public void Remove(IISWebServer WebServer)
    {
    for(int i=0;i<this.List.Count;i++)
    {
    if((IISWebServer)this.List[i] == 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);
    }
    ///////////////////////////////////////////
    }
      

  6.   

    /// <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[i];
    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[i]);
    }
    } /// <summary>
    /// 
    /// </summary>
    /// <param name="WebVirtualDir"></param>
    public void Remove(IISWebVirtualDir WebVirtualDir)
    {
    for(int i=0;i<this.List.Count;i++)
    {
    if((IISWebVirtualDir)this.List[i] == 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()
    { }
    }
    }
      

  7.   

    以下是一个调用例子
    //添加新站点
    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_);
      

  8.   

    using System.DirectoryServices;
    在ASP2。0中找不到此命名空间,谁知道对应的命名控件是什么啊?我查了一下2005的MSDN,能查到这个名称空间,但在程序中写如上的时候会报错,说没有引用命名空间或找不到此命名空间
      

  9.   

    using System.DirectoryServices;
    在ASP2。0中找不到此命名空间,谁知道对应的命名控件是什么啊?我查了一下2005的MSDN,能查到这个名称空间,但在程序中写如上的时候会报错,说没有引用命名空间或找不到此命名空间
      

  10.   

    System.DirectoryServices要引用.net自带的System.DirectoryServices.dll
      

  11.   

    运行时出现以下错误,请问是什么原因?
    拒绝访问。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Runtime.InteropServices.COMException: 拒绝访问。源错误: 
    行 75:  DirectoryEntry Root = null;
    行 76:  DirectoryEntry VirDir;
    行 77:  IEnumerator ie = Service.Children.GetEnumerator();
    行 78:  IEnumerator ieRoot;
    行 79:  IISWebServer item;
     
      

  12.   

    太郁闷了!
    你发表源码是你的吗?还是照抄别的什么地方的???
    太不负责任了!
    这明明只是Windows应用程序的代码,发上来也不注明,简直是太不负责任,不懂就别乱抄!越想越气!代码没错,但是地方不告诉大家,叫人家怎么用?!
    后来看到一仁兄回复的拒绝访问的错误,我来说明一下:楼猪发布的是Windows应用程序,调试而且使用都没问题,但是你要把这个类移植到ASP.NET页面中使用,那问题就大了,就是会被拒绝访问,解决办法我暂时也不知道,网上都是不负责任的家伙,气死了,自己可能也没调试过,想当然的自己瞎说,搞的好象是那么回事,根本没有个明确的答案,还得自己研究!