C# 操作IIS6.0类

21 篇文章 0 订阅

C# 操作IIS6.0类

using  System; 
using  System.DirectoryServices; 
using  System.Collections; 
using  System.Text.RegularExpressions; 
using  System.Text; 

namespace  Wuhy.ToolBox 

 
/// 


 
public class IISAdminLib 
 

  
UserName,Password,HostName的定义 

根据路径构造Entry的方法 
添加,删除网站的方法 
Start和Stop网站的方法 
#region 确认网站是否相同 

/// 
/// 确定一个新的网站与现有的网站没有相同的。 
/// 这样防止将非法的数据存放到IIS里面去 
/// 
/// 网站邦定信息 
/// 真为可以创建,假为不可以创建 



public static bool EnsureNewSiteEnavaible(string bindStr) 

 
string entPath = String.Format("IIS://{0}/w3svc", HostName); 
 DirectoryEntry ent 
= GetDirectoryEntry(entPath); 
 
foreach(DirectoryEntry child in ent.Children) 
 

  
if(child.SchemaClassName == "IIsWebServer"
  

   
if(child.Properties["ServerBindings"].Value != null
   

    
if(child.Properties["ServerBindings"].Value.ToString() == bindStr) 
    

     
return false
    }
 
   }
 
  }
 
 }
 
 
return true


 

}
 


#endregion
 
#region 获取一个网站编号的方法 
/// 
/// 获取一个网站的编号。根据网站的ServerBindings或者ServerComment来确定网站 

编号 
/// 
/// 
/// 返回网站的编号 
/// 表示没有找到网站 


public static string GetWebSiteNum(string siteName) 

 Regex regex 
= new Regex(siteName); 
 
string tmpStr; 
 
string entPath = String.Format("IIS://{0}/w3svc", HostName); 
 DirectoryEntry ent 
= GetDirectoryEntry(entPath); 
 
foreach(DirectoryEntry child in ent.Children) 
 

  
if(child.SchemaClassName == "IIsWebServer"
  

   
if(child.Properties["ServerBindings"].Value != null
   

    tmpStr 
= child.Properties["ServerBindings"].Value.ToString(); 
    
if(regex.Match(tmpStr).Success) 
    

     
return child.Name; 
    }
 
   }
 
   
if(child.Properties["ServerComment"].Value != null
   

    tmpStr 
= child.Properties["ServerComment"].Value.ToString(); 
    
if(regex.Match(tmpStr).Success) 
    

     
return child.Name; 
    }
 
   }
 
  }
 
 }
 


 
throw new NotFoundWebSiteException("没有找到我们想要的站点" + siteName); 


 

}
 


#endregion
 
#region 获取新网站id的方法 
/// 
/// 获取网站系统里面可以使用的最小的ID。 
/// 这是因为每个网站都需要有一个唯一的编号,而且这个编号越小越好。 
/// 这里面的算法经过了测试是没有问题的。 
/// 
/// 最小的id 


public static string GetNewWebSiteID() 

 ArrayList list 
= new ArrayList(); 
 
string tmpStr; 
 
string entPath = String.Format("IIS://{0}/w3svc", HostName); 
 DirectoryEntry ent 
= GetDirectoryEntry(entPath); 
 
foreach(DirectoryEntry child in ent.Children) 
 

  
if(child.SchemaClassName == "IIsWebServer"
  

   tmpStr 
= child.Name.ToString(); 
   list.Add(Convert.ToInt32(tmpStr)); 
  }
 
 }
 
 list.Sort(); 
 
int i = 1
 
foreach(int j in list) 
 

  
if(i == j) 
  

   i
++
  }
 
 }
 
 
return i.ToString(); 


 

}
 
#endregion
 
}
 


#region 新网站信息结构体 

public struct NewWebSiteInfo 

 
private string hostIP; // The Hosts IP Address 
 private string portNum; // The New Web Sites Port.generally is "80" 
 private string descOfWebSite; // 网站表示。一般为网站的网站名。例如 
"www.dns.com.cn" 
 
private string commentOfWebSite;// 网站注释。一般也为网站的网站名。 
 private string webPath; // 网站的主目录。例如"e:/tmp" 
 public NewWebSiteInfo(string hostIP, string portNum, string descOfWebSite, 
string commentOfWebSite, string webPath) 
 

  
this.hostIP = hostIP; 
  
this.portNum = portNum; 
  
this.descOfWebSite = descOfWebSite; 
  
this.commentOfWebSite = commentOfWebSite; 
  
this.webPath = webPath; 
 }
 
 
public string BindString 
 

  
get 
  

   
return String.Format("{0}:{1}:{2}", hostIP, portNum, descOfWebSite); 
  }
 
 }
 
 
public string CommentOfWebSite 
 

  
get 
  

   
return commentOfWebSite; 
  }
 
 }
 
 
public string WebPath 
 

  
get 
  

   
return webPath; 
  }
 
 }
 


 

}
 
#endregion
 
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值