IIS 6.0以后使用MetaBase.xml存储IIS信息,因此,可以直接修改这个文件即可。
代码如下: 很显然,这种方法比较复杂,不直观,而且需要停止IIS,影响现有网站。
///
/// 本方法创建一个站点(当然,创建虚拟目录也完全没有任何问题,做法类似),并设置IIS中ASP.NET版本为2.0
///
///
///
private void button1_Click( object sender, EventArgs e)
{
// 站点名称和物理路径
String webSiteName = " mengxianhui " ;
String pathToRoot = @" c:/mengxianhui " ;
DirectoryEntry root = new DirectoryEntry( " IIS://localhost/W3SVC " ); // Find unused ID value for new web site
int siteID = 1 ;
// 得到现有的站点标识
foreach (DirectoryEntry entry in root.Children)
{
if (entry.SchemaClassName == " IIsWebServer " )
{
int ID = Convert.ToInt32(entry.Name);
if (ID >= siteID)
{
siteID = ID + 1 ;
}
}
}
// 利用配置文件的做法创建站点,需要先停止原来的服务,以便能够顺利写入数据
label1.Text = " 正在停止服务…… " ;
Application.DoEvents();
System.ServiceProcess.ServiceController mobServiceController3 = new System.ServiceProcess.ServiceController( " IISAdmin " );
foreach (System.ServiceProcess.ServiceController dependentService in mobServiceController3.DependentServices)
{
switch (dependentService.Status)
{
case ServiceControllerStatus.Stopped:
break ;
case ServiceControllerStatus.StopPending:
dependentService.WaitForStatus(ServiceControllerStatus.Stopped);
break ;
default :
dependentService.Stop();
dependentService.WaitForStatus(ServiceControllerStatus.Stopped);
break ;
/// 本方法创建一个站点(当然,创建虚拟目录也完全没有任何问题,做法类似),并设置IIS中ASP.NET版本为2.0
///
///
///
private void button1_Click( object sender, EventArgs e)
{
// 站点名称和物理路径
String webSiteName = " mengxianhui " ;
String pathToRoot = @" c:/mengxianhui " ;
DirectoryEntry root = new DirectoryEntry( " IIS://localhost/W3SVC " ); // Find unused ID value for new web site
int siteID = 1 ;
// 得到现有的站点标识
foreach (DirectoryEntry entry in root.Children)
{
if (entry.SchemaClassName == " IIsWebServer " )
{
int ID = Convert.ToInt32(entry.Name);
if (ID >= siteID)
{
siteID = ID + 1 ;
}
}
}
// 利用配置文件的做法创建站点,需要先停止原来的服务,以便能够顺利写入数据
label1.Text = " 正在停止服务…… " ;
Application.DoEvents();
System.ServiceProcess.ServiceController mobServiceController3 = new System.ServiceProcess.ServiceController( " IISAdmin " );
foreach (System.ServiceProcess.ServiceController dependentService in mobServiceController3.DependentServices)
{
switch (dependentService.Status)
{
case ServiceControllerStatus.Stopped:
break ;
case ServiceControllerStatus.StopPending:
dependentService.WaitForStatus(ServiceControllerStatus.Stopped);
break ;
default :
dependentService.Stop();
dependentService.WaitForStatus(ServiceControllerStatus.Stopped);
break ;