前言:

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(); 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"][] = "D:\\inetpub\\IISADSIDemo\\vdir1";
newVDir.Properties["AccessScript"][] = true;
newVDir.Properties["AppFriendlyName"][] = "vdir1";
newVDir.Properties["AppIsolated"][] = "";
newVDir.Properties["AppRoot"][] = "/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();
}
}
}

C#代码配置IIS 操纵IIS的更多相关文章

  1. Web应用程序项目XX已配置为使用IIS

    今天在看开源项目Umbraco是,出现一个项目加载不了,并报如下错误: Web应用程序项目Umbraco.Cms.Web.UI已配置为使用IIS.若要访问本地IIS网站,必须安装下列IIS组件..,如 ...

  2. 转:Web应用程序项目XX已配置为使用IIS

    转:http://www.cnblogs.com/Joetao/articles/2392526.html 今天在看开源项目Umbraco是,出现一个项目加载不了,并报如下错误: Web应用程序项目U ...

  3. 配置Windows Server2008+iis+php+mysql所需下载安装包

    最近一个朋友让我帮忙给配置服务器iis+php+mysq 环境,遇到了很多问题,特此就在这里说一下.小弟只是在windwos2003 和windwos XP下配置过iis+php+mysql,去朋友那 ...

  4. Web 应用程序项目 MvcApplication1 已配置为使用 IIS。

    今天网上下了一个项目,加载不了,并报如下错误: Web 应用程序项目 MvcApplication1 已配置为使用 IIS. 若要访问本地 IIS 网站,必须在管理员帐户的上下文中运行 Visual ...

  5. Web应用程序项目XXXX已配置为使用IIS。无法访问IIS元数据库。您没有足够的特权访问计算机上的IIS网站

    问题:Windows8下直接使用VS打开项目,出现问题:XXXX已配置为使用IIS.无法访问IIS元数据库.您没有足够的特权访问计算机上的IIS网站.解决:1.以“管理员权限”运行VS,在VS菜单打开 ...

  6. Web 应用程序项目 XXXX 已配置为使用 IIS。 无法访问 IIS 元数据库。您没有足够的特权访问计算机上的 IIS 网站。(转载)

    Web 应用程序项目 XXXX 已配置为使用 IIS. 无法访问 IIS 元数据库.您没有足够的特权访问计算机上的 IIS 网站. 2012年05月19日 ⁄ 综合 ⁄ 共 261字 ⁄ 字号 小 中 ...

  7. 部署网站: 配置项目到iis上运行报目录错误

    配置项目到iis上运行报目录错误 以下三种方法可使用: 1.添加文件访问权限 everyone  (线上环境慎用) 2.重新注册iis 3.web.config 加一段话 在<system.we ...

  8. 如何设置非管理员用户配置特定的IIS站点

    如何设置非管理员用     户配置特定的IIS站点 一.           添加IIS管理服务 二.           启动管理服务 勾选启用远程连接后.点右边的应用 三.           设 ...

  9. Web 应用程序项目 Himall.Web 已配置为使用 IIS。 无法访问 IIS 元数据库

    Web应用程序项目XXXX已配置为使用IIS.无法访问IIS元数据库.您没有足够的特权访问计算机上的IIS网站,xxxxiis 问题:Windows8下直接使用VS打开项目,出现问题:XXXX已配置为 ...

随机推荐

  1. [C++基础]随机数,随机种子数

    #include <stdlib.h> #include <iostream> #include <ctime> using namespace std; void ...

  2. 一步步学Mybatis-实现多表联合查询(4)

    上一章节中我们已经完成了对单表的CRUD操作,接下来今天这一讲讲述的是关于Mybatis在多表查询时候的应用,毕竟实际业务中也是多表的联合查询比较多嘛~ 还记得最一开始我们新建过一张Website表吗 ...

  3. Gridview全选

    1.js代码 <script language="javascript" type="text/javascript">               ...

  4. pylons使用多个数据库(multiple DB)

    最近做的工程要修改成两个数据库的,一个测试数据库, 一个线上数据库. 所以就要把原来的只有一个数据库的改成两个数据库. 第一步:修改development.ini # SQLAlchemy datab ...

  5. volatile synschonized的区别

    在一次面试中,被问到volatile与synschonized的区别,概念模模糊糊,今天做一个总结,加强自己的认识. 本文参考http://www.cnblogs.com/dolphin0520/p/ ...

  6. MyReport:DataGrid的打印和打印预览

    本文说明怎样使用MyReport来实现Flex DataGrid组件的自己主动化打印预览和打印功能. 实现代码 <? xmlversion="1.0" encoding=&q ...

  7. C# 之 HttpWebResponse类

    提供 WebResponse 类的 HTTP 特定的实现.       继承层次结构 ,"System.Object→System.MarshalByRefObject→System.Net ...

  8. B. Om Nom and Dark Park

    B. Om Nom and Dark Park 在满二叉树上的某些边上添加一些值.使得根节点到叶子节点的路径上的权值和都相等.求最少需要添加多少. 我们利用性质解题.   考察兄弟节点.由于他们从跟节 ...

  9. [Javascript] Try...Catch和异常处理

    在JavaScript可以使用try...catch来进行异常处理.例如:  try    {     foo.bar(); }   catch  (e)   {     alert(e.name  ...

  10. Android 拍照 代码实例

    ------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 这是我做的一个简单的利用Android手机的摄像头进行拍照的实例. 在这里我实现了基本的拍照.照片的存储 ...