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();

        }

    }

}
View Code

 

你可能感兴趣的:(IIS)