C#添加IIS站点
利用IIS7自带类库管理IIS现在变的更强大更方便,而完全可以不需要用DirecotryEntry这个类了(乐博网中很多.net管理iis6.0的文章都用到了DirecotryEntry这个类 ),Microsoft.Web.Administration.dll位于IIS的目录(%WinDir%\\System32\\InetSrv)下,使用时需要引用,它基本上可以管理IIS7的各项配置。
这个类库的主体结构如下:
这里只举几个例子说明一下基本功能,更多功能请参考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方法二:
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/61414.html