码迷,mamicode.com
首页 > Windows程序 > 详细

C#代码配置IIS 操纵IIS

时间:2015-03-20 12:20:36      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:

前言:

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

 

C#代码配置IIS 操纵IIS

标签:

原文地址:http://www.cnblogs.com/WZH75171992/p/4353051.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!