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已配置为 ...
随机推荐
- 次表面散射(SubSurface Scattering) Shader 【转】
原文 http://www.azure.com.cn/article.asp?id=231 用深度值近似模拟物体的厚度,厚度越小处透光越多. varying vec4 position;varying ...
- 怎样基于android4.4.2的源代码和android-4.3.1_r1的驱动编译I9250的ROM
怎样基于android4.4.2的源代码和android-4.3.1_r1的驱动编译I9250的ROM 作者:雨水 2014-05-04 联系方式:dennis.hu.cd at gmail.com ...
- 【JavaScript】使用面向对象的技术创建高级 Web 应用程序
本文讨论: JavaScript 是基于原型的语言 用 JavaScript 进行面向对象的编程 JavaScript 编码技巧 JavaScript 的未来 本文使用了以下技术: JavaScrip ...
- Android监听WIFI网络的变化并且获得当前信号强度
MainActivity如下: package cc.testwifi; import android.os.Bundle; import android.app.Activity; /** * De ...
- RMI、RPC、SOAP通讯技术介绍及比对 - XML/SOAP
RMI.RPC.SOAP通信技术介绍及比对 1.RMI 使用java的程序员,对于RMI(RemoteMethod Invoke,远程方法调用)一定不陌生,在java中,为了在分布式应用开发时,能够方 ...
- [转]Oracle快速入门
原文出处:http://blog.csdn.net/yueguanghaidao/article/details/7019377 select * from scott.salgrade; /*解锁s ...
- 计划任务命令crontab、at
一.为计划任务提供支持 开始为系统建立计划任务之前,需要为系统添加相关设置,以确保计划任务能够正确运行.计划任务需要的支持主要包括两个方面:正确运行系统服务.准确的系统时间. 1.正确运行系统服务 为 ...
- 基于Bootstrap的jQuery开关按钮组合
Bootstrap是一款由Twitter推出的开源前端开发包,功能非常强大.今天我们要分享的这款jQuery开关按钮组合就是基于Bootstrap框架的,看了按钮的主题样式,也都是Bootstrap的 ...
- A标签使用javascript:伪协议
一.前言 今天,遇到一个别人挖的坑,问题是这样的. 做了一个列表页,可以筛选数据,有很多筛条件.主要是有input复选框和<a>标签两种.如图: 其中房价的筛选条件使用<a>标 ...
- 测试你是否和LTC水平一样高
Problem Description 大家提到LTC都佩服的不行,不过,如果竞赛只有这一个题目,我敢保证你和他绝对在一个水平线上!你的任务是:计算方程x^2+y^2+z^2= num的一个正整数解. ...