利用IIS7自带类库管理IIS现在变的更强大更方便,而完全可以不需要用DirecotryEntry这个类了(乐博网中很多.net管理iis6.0的文章都用到了DirecotryEntry这个类 ),Microsoft.Web.Administration.dll位于IIS的目录(%WinDir%\\System32\\InetSrv)下,使用时需要引用,它基本上可以管理IIS7的各项配置。

这个类库的主体结构如下:

 

C#添加IIS站点

这里只举几个例子说明一下基本功能,更多功能请参考MSDN。

string SiteName="乐博网"; //站点名称
string BindArgs="*:80:"; //绑定参数,注意格式
string apl="http"; //类型
string path="e:\\乐博网"; //网站路径
ServerManager sm = new ServerManager();
sm.Sites.Add(SiteName,apl,BindArgs,path);
sm.CommitChanges();

修改站点

Site site=sm.Sites["newsite"];
site.Name=SiteName;
site.Bindings[0].EndPoint.Port=9999;
site.Applications[0].VirtualDirectories[0].PhysicalPath=path;
sm.CommitChanges();

删除站点

Site site=sm.Sites["乐博网"];
sm.Sites.Remove(site);
sm.CommitChanges();

 

站点操作
方法一:

  1         #region CreateWebsite 添加网站
  2 
  3         public string CreateWebSite(string serverID, string serverComment, string defaultVrootPath, string HostName, string IP, string Port)
  4         {
  5             try
  6             {
  7                 ManagementObject oW3SVC = new ManagementObject (_scope, new ManagementPath(@"IIsWebService='W3SVC'"), null);
  8                 if (IsWebSiteExists (serverID))
  9                 {
 10                     return "Site Already Exists...";
 11                 }
 12 
 13                 ManagementBaseObject inputParameters = oW3SVC.GetMethodParameters ("CreateNewSite");
 14                 ManagementBaseObject[] serverBinding = new ManagementBaseObject[1];
 15 
 16                 serverBinding[0] = CreateServerBinding(HostName, IP, Port);
 17 
 18                 inputParameters["ServerComment"] = serverComment;
 19                 inputParameters["ServerBindings"] = serverBinding;
 20                 inputParameters["PathOfRootVirtualDir"] = defaultVrootPath;
 21                 inputParameters["ServerId"] = serverID;
 22 
 23                 ManagementBaseObject outParameter = null;
 24                 outParameter = oW3SVC.InvokeMethod("CreateNewSite", inputParameters, null);
 25 
 26                 // 启动网站
 27                 string serverName = "W3SVC/" + serverID;
 28                 ManagementObject webSite = new ManagementObject(_scope, new ManagementPath(@"IIsWebServer='" + serverName + "'"), null);
 29                 webSite.InvokeMethod("Start", null);
 30 
 31                 return (string)outParameter.Properties["ReturnValue"].Value;
 32 
 33             }
 34             catch (Exception ex)
 35             {
 36                 return ex.Message;
 37             }
 38 
 39         }
 40 
 41         public ManagementObject CreateServerBinding(string HostName, string IP, string Port)
 42         {
 43             try
 44             {
 45                 ManagementClass classBinding = new ManagementClass(_scope, new ManagementPath("ServerBinding"), null);
 46 
 47                 ManagementObject serverBinding = classBinding.CreateInstance();
 48 
 49                 serverBinding.Properties["Hostname"].Value = HostName;
 50                 serverBinding.Properties["IP"].Value = IP;
 51                 serverBinding.Properties["Port"].Value = Port;
 52                 serverBinding.Put();
 53 
 54                 return serverBinding;
 55             }
 56             catch
 57             {
 58                 return null;
 59             }
 60         }
 61         
 62         #endregion
 63 
 64         #region 添加网站事件
 65 
 66         protected void AddWebsite_Click(object sender, EventArgs e)
 67         {
 68             IISManager iis = new IISManager();
 69 
 70             iis.Connect();
 71 
 72             string serverID = "5556";
 73             string serverComment = "Create Website";
 74             string defaultVrootPath = @"D:\web";
 75             string HostName = "World";
 76             string IP = "";
 77             string Port = "9898";
 78 
 79             ReturnMessage.Text = iis.CreateWebSite(serverID,serverComment,defaultVrootPath,HostName,IP,Port);
 80         }
 81 
 82         #endregion
 83 
 84         #region DeleteSite 删除站点
 85 
 86         public string DeleteSite(string serverID)
 87         {
 88             try
 89             {
 90                 string serverName = "W3SVC/" + serverID;
 91                 ManagementObject webSite = new ManagementObject(_scope, new ManagementPath(@"IIsWebServer='" + serverName + "'"), null);
 92                 webSite.InvokeMethod("Stop", null);
 93                 webSite.Delete();
 94                 webSite = null;
 95 
 96                 return "Delete the site succesfully!";
 97             }
 98             catch (Exception deleteEx)
 99             {
100                 return deleteEx.Message;
101             }
102         }
103 
104         #endregion
View Code

相关文章:

  • 2021-06-08
  • 2022-01-04
  • 2021-10-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-05
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-06-09
  • 2021-09-28
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案