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(); 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的更多相关文章
- Web应用程序项目XX已配置为使用IIS
今天在看开源项目Umbraco是,出现一个项目加载不了,并报如下错误: Web应用程序项目Umbraco.Cms.Web.UI已配置为使用IIS.若要访问本地IIS网站,必须安装下列IIS组件..,如 ...
- 转:Web应用程序项目XX已配置为使用IIS
转:http://www.cnblogs.com/Joetao/articles/2392526.html 今天在看开源项目Umbraco是,出现一个项目加载不了,并报如下错误: Web应用程序项目U ...
- 配置Windows Server2008+iis+php+mysql所需下载安装包
最近一个朋友让我帮忙给配置服务器iis+php+mysq 环境,遇到了很多问题,特此就在这里说一下.小弟只是在windwos2003 和windwos XP下配置过iis+php+mysql,去朋友那 ...
- Web 应用程序项目 MvcApplication1 已配置为使用 IIS。
今天网上下了一个项目,加载不了,并报如下错误: Web 应用程序项目 MvcApplication1 已配置为使用 IIS. 若要访问本地 IIS 网站,必须在管理员帐户的上下文中运行 Visual ...
- Web应用程序项目XXXX已配置为使用IIS。无法访问IIS元数据库。您没有足够的特权访问计算机上的IIS网站
问题:Windows8下直接使用VS打开项目,出现问题:XXXX已配置为使用IIS.无法访问IIS元数据库.您没有足够的特权访问计算机上的IIS网站.解决:1.以“管理员权限”运行VS,在VS菜单打开 ...
- Web 应用程序项目 XXXX 已配置为使用 IIS。 无法访问 IIS 元数据库。您没有足够的特权访问计算机上的 IIS 网站。(转载)
Web 应用程序项目 XXXX 已配置为使用 IIS. 无法访问 IIS 元数据库.您没有足够的特权访问计算机上的 IIS 网站. 2012年05月19日 ⁄ 综合 ⁄ 共 261字 ⁄ 字号 小 中 ...
- 部署网站: 配置项目到iis上运行报目录错误
配置项目到iis上运行报目录错误 以下三种方法可使用: 1.添加文件访问权限 everyone (线上环境慎用) 2.重新注册iis 3.web.config 加一段话 在<system.we ...
- 如何设置非管理员用户配置特定的IIS站点
如何设置非管理员用 户配置特定的IIS站点 一. 添加IIS管理服务 二. 启动管理服务 勾选启用远程连接后.点右边的应用 三. 设 ...
- Web 应用程序项目 Himall.Web 已配置为使用 IIS。 无法访问 IIS 元数据库
Web应用程序项目XXXX已配置为使用IIS.无法访问IIS元数据库.您没有足够的特权访问计算机上的IIS网站,xxxxiis 问题:Windows8下直接使用VS打开项目,出现问题:XXXX已配置为 ...
随机推荐
- 给指针malloc分配空间后就等于数组吗?
首先回答这个的问题:严格的说不等于数组,但是可以认为它是个数组一样的使用而不产生任何问题.不过既然这样,那它应该算是个数组吧.所以,一般我们都用“动态数组”这种名字来称呼这种东西. 要讲清楚这个东西, ...
- scala命令
1. intersect方法找出两个字符串的相同字符: scala> "Hello".intersect("World") res3: String = ...
- Android实现数据存储技术
转载:Android实现数据存储技术 本文介绍Android中的5种数据存储方式. 数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是: 1 使用Shar ...
- 对线性回归,logistic回归和一般回归的认识
原文:http://www.cnblogs.com/jerrylead/archive/2011/03/05/1971867.html#3281650 对线性回归,logistic回归和一般回归的认识 ...
- 基于jQuery实现苹果Dock样式的菜单
爱编程小编之前我们分享过相当数量的jQuery菜单了,今天要给大家带来一款Dock样式的jQuery菜单,用过苹果的朋友都知道,它的Dock菜单非常酷,配合漂亮的图标就更加绚丽了.效果图如下: 在线预 ...
- 项目源码--JSP在线客服系统(SSH框架技术)源码
下载源码 技术要点: 1.网站开发技术框架 2.SSH技术框架(Struct,Spring,Hibrnate) 3.JSP技术框架 4.MYSQL数据库数据存储 5.即时通讯技术 6.源码带详细的中文 ...
- windows下搭建svn服务端、客户端
1.安装SVN服务器subversion以及客户端TortoiseSVN,在网上下载windows版的subversion,TortoiseSVN并安装,比如我的服务端安装在了D:\Program F ...
- Spring MVC 中 HandlerInterceptorAdapter的使用--转载
原文地址:http://blog.csdn.net/liuwenbo0920/article/details/7283757 一般情况下,对来自浏览器的请求的拦截,是利用Filter实现的,这种方式可 ...
- oc语言复制视频文件
void copyFile() { NSString *home=NSHomeDirectory(); NSString *path=[NSString stringWithFormat:@" ...
- 沈逸老师PHP魔鬼特训笔记(10)
为了防止代码让我们混淆不清,大家看视频中的分离方法 1.新建了一个文件夹叫code (这代表是代码) 2.再新建一个文件夹叫page (这代表是页面) 代码该怎么写呢? 这里要记住口诀 1.index ...