C#代码配置IIS 操纵IIS
前言:
IIS到目前经历了四个版本分别为 IIS4.0 IIS5.0 IIS6.0 IIS7.0,其中IIS6.0 IIS7.0是在5.0的安全问题的基础上获得的发展,目前为止。6.0版本以后的都是比较安全稳定的,为什么需要了解IIS版本,是因为6.0以后和之 前的IIS提供的操作API是不一样的,不过IIS6.0时代主要以using System.DirectoryServices空间下的DirectoryEntry 对象作为编程访问一个主要载体.但随着IIS7.0发布.NET的Web程序由IIS6.0开始逐渐过渡到 7.0版本.而且在编程控制IIS上新添加的Microsoft.Web.Administration名称空间, 可以操作7.0。
系统要求:亲测win7+iis7.0.
以下为代码部分:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.DirectoryServices; namespace CSIISAdminADSI { class Program { static void Main(string[] args) { Console.WriteLine("按任意键来创建新的网站。"); Console.ReadLine(); //连接到IIS ADSI提供者 string ServerName = "LocalHost"; DirectoryEntry W3SVC = new DirectoryEntry("IIS://" + ServerName + "/w3svc"); // 创建新的Web站点。 object siteObj; string siteID = ""; string siteName = "IISADSIDemo";//网站名字 string hostHeader = "www.mytestdomain.com";//域名 string serverBinding1 = ":8181:"; string serverBinding2 = ":8282:" + hostHeader; string rootPath = "D:\\inetpub\\IISADSIDemo";//路径 object[] siteProperty = new object[] { siteName, new object[] { serverBinding1, serverBinding2 }, rootPath }; try { siteObj = (object)W3SVC.Invoke("CreateNewSite", siteProperty); siteID = siteObj.ToString(); W3SVC.CommitChanges(); } catch (Exception ex) { Console.WriteLine( "不能有以下例外创建网站: \n{0}", ex.Message); } /////////////////////////////////////////////////////////////////////// // 稍候让ADSI完成以上操作,然后启动网站。 Console.WriteLine("网站创建。iisadsidemo开始..."); System.Threading.Thread.Sleep(1000); DirectoryEntry newSite = new DirectoryEntry("IIS://" + ServerName + "/W3SVC/" + siteID); newSite.Invoke("Start"); Console.WriteLine("开始 \n"); Console.WriteLine("创建新的虚拟目录."); // 创建新的虚拟目录。 string metabasePath = string.Format("/W3SVC/{0}/Root", siteID); DirectoryEntry site = new DirectoryEntry("IIS://" + ServerName + metabasePath); DirectoryEntries vdirs = site.Children; DirectoryEntry newVDir = vdirs.Add("vdir1", "IIsWebVirtualDir"); newVDir.Properties["Path"][0] = "D:\\inetpub\\IISADSIDemo\\vdir1"; newVDir.Properties["AccessScript"][0] = true; newVDir.Properties["AppFriendlyName"][0] = "vdir1"; newVDir.Properties["AppIsolated"][0] = "1"; newVDir.Properties["AppRoot"][0] = "/LM" + metabasePath + "/vdir1"; newVDir.CommitChanges(); Console.WriteLine("vdir1创建. \n"); // 列出服务器上的所有网站。 Console.WriteLine("列出服务器上的所有网站: \n"); try { foreach (DirectoryEntry Site in W3SVC.Children) { if (Site.SchemaClassName == "IIsWebServer") Console.WriteLine(Site.Name + " - " + Site.Properties["ServerComment"].Value.ToString()); } } catch (Exception e) { Console.WriteLine( "不能有以下例外网站清单: \n{0}: " + e.ToString()); } Console.WriteLine("\nEnd."); Console.Read(); } } }