.net操作IIS,新建网站,新建应用程序池,设置应用程序池版本,设置网站和应用程序池的关联
ServerManager类用来操作IIS,提供了很多操作IIS的API。使用ServerManager必须引用Microsoft.Web.Administration.dll,具体路径为:%windir%\System32\Inetsrv\Microsoft.Web.Administration.dll
以下代码展示了如何将自己的ASP.NET网站自动部署到IIS的过程,其中包括,新建网站-》新建应用程序池-》设置网站和应用程序池的关联-》重启网站和应用程序池
具体代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Web.Administration; namespace AutoConfigureIIS
{
internal class Program
{
//don't forget to add a reference to %windir%\System32\Inetsrv\Microsoft.Web.Administration.dll private static ServerManager serverMgr = new ServerManager();
private static string applicationPoolName = "IPSRemoteApplicationPool";
private static string applicationPoolVersion = "v4.0";
private static string websiteName = "IPSRemoteSite";
private static string port = "";
private static string webPath = @"C:\Work\Published\SelfHostedIPSRemoteWeb"; private static void Main(string[] args)
{
DeployIPSWeb(); Console.Read();
} /// <summary>
/// Auto Configure IPS WebSite to IIS
/// </summary>
private static void DeployIPSWeb()
{
//create Application Pool
if (!IsApplicationPoolExists(applicationPoolName))
{
CreateApplicationPool(applicationPoolName);
}
//create website
if (!IsWebsiteExists(websiteName))
{
CreateWebSite(websiteName, port, webPath);
} Site site = FindSiteBySiteName(websiteName); // get site by Index or by siteName
ApplicationPool appPool = FindApplicationPoolByName(applicationPoolName);
// get appPool by Index or by appPoolName site.Stop();
site.ApplicationDefaults.ApplicationPoolName = appPool.Name; foreach (var item in site.Applications)
{
item.ApplicationPoolName = appPool.Name;
} serverMgr.CommitChanges(); // this one is crucial!!! see MSDN:
// Updates made to configuration objects must be explicitly written to the configuration
// system by using the CommitChanges method!!
site.Start();
appPool.Recycle();
} /// <summary>
/// Create WebSite sitename to IIS with the arguments
/// </summary>
/// <param name="sitename"></param>
/// <param name="portstr"></param>
/// <param name="webPathstr">website code path</param>
public static void CreateWebSite(string sitename, string portstr, string webPathstr)
{
serverMgr.Sites.Add(sitename, "http", "*:" + portstr + ":", webPathstr); serverMgr.CommitChanges();
} public static void CreateApplicationPool(string poolname)
{
ApplicationPool newPool = serverMgr.ApplicationPools.Add(poolname);
newPool.ManagedRuntimeVersion = applicationPoolVersion;
serverMgr.CommitChanges();
} public static bool IsWebsiteExists(string strWebsitename)
{
Site site = FindSiteBySiteName(strWebsitename);
if (site == null)
return false;
else
return true;
} public static Site FindSiteBySiteName(string strWebsitename)
{
SiteCollection sitecollection = serverMgr.Sites;
foreach (Site site in sitecollection)
{
if (site.Name == strWebsitename.ToString())
{
return site;
}
}
return null;
} public static ApplicationPool FindApplicationPoolByName(string poolName)
{
ApplicationPoolCollection poolcollection = serverMgr.ApplicationPools;
foreach (ApplicationPool pool in poolcollection)
{
if (pool.Name == poolName.ToString())
{
return pool;
}
}
return null;
} public static bool IsApplicationPoolExists(string appPool)
{
ApplicationPool pool = FindApplicationPoolByName(appPool);
if (pool == null)
{
return false;
}
else
{
return true;
}
}
}
}
.net操作IIS,新建网站,新建应用程序池,设置应用程序池版本,设置网站和应用程序池的关联的更多相关文章
- 利用ASP.NET操作IIS (可以制作安装程序)
很多web安装程序都会在IIS里添加应用程序或者应用程序池,早期用ASP.NET操作IIS非常困难,不过,从7.0开始,微软提供了 Microsoft.Web.Administration 类,可以很 ...
- C#操作IIS程序池及站点的创建配置
最近在做一个WEB程序的安装包:对一些操作IIS进行一个简单的总结:主要包括对IIS进行站点的新建以及新建站点的NET版本的选择,还有针对IIS7程序池的托管模式以及版本的操作:首先要对Microso ...
- C#操作IIS程序池及站点的创建配置(转)
原文:http://www.cnblogs.com/wujy/archive/2013/02/28/2937667.html 最近在做一个WEB程序的安装包:对一些操作IIS进行一个简单的总结:主 ...
- C#操作IIS程序池及站点的创建配置实现代码
首先要对Microsoft.Web.Administration进行引用,它主要是用来操作IIS7: using System.DirectoryServices;using Microsoft.We ...
- C#使用DirectoryEntry操作IIS创建网站和虚拟路径
原文:http://www.cnblogs.com/Aiooioo/archive/2011/05/30/cs-iis.html 在.Net中我们可以使用内置的类DirectoryEntry来承载II ...
- C#操作IIS完整解析
原文:C#操作IIS完整解析 最近在为公司实施做了一个工具,Silverlight部署早已是轻车熟路, 但对于非技术人员来说却很是头疼的一件事,当到现场实施碰到客户情况也各不相同, 急需一个类似系统备 ...
- C#操作IIS服务
进入正题:先从使用角度来讲解IIS操作,然后再深入到具体的IIS服务底层原理. [1]前提掌握要点: (1).IIS到目前经历了四个版本分别为 IIS4.0 IIS5.0 IIS6.0 IIS7.0, ...
- c#操作IIS站点
/// <summary> /// 获取本地IIS版本 /// </summary> /// <returns></returns> public st ...
- C# 使用代码来操作 IIS
由于需要维护网站的时候,可以自动将所有的站点HTTP重定向到指定的静态页面上. 要操作 IIS 主要使用到的是“Microsoft.Web.Administration.dll”. 该类库不可以在引用 ...
随机推荐
- 详解ASP.NET MVC 控制器
1 概述 在阅读本篇博文时,建议结合上篇博文:详解ASP.NET MVC 路由 一起阅读,效果可能会更好些. Controller(控制器)在ASP.NET MVC中负责控制所有客户端与服务端的 ...
- 关于MongoDB安全事件的一些思考
刚刚过去的这个周末,各位大数据和数据库从业者想必是被MongoDB的"安全事件"给刷屏了,MongoDB作为当前NoSQL在全球的领军人物,遭到这么大规模的黑客攻击,这也再次让我们 ...
- MyEclipse 2014 破解补丁及激活步骤
针对 MyEclipse Trail Expired 问题的解决方法 我用网上找的注册类生成注册码的方式注册了一下,重启MyEclipse仍然会有提示弹窗,不过剩余时间由 4 days变成了 5 da ...
- javaWeb第一天
//第一个JavaWeb项目package com.chy.action; import java.io.IOException; import javax.servlet.ServletExcept ...
- QQ信鸽推送
闲来无事,看看腾讯的信鸽推送! 优点: 1.毕竟大腿出的东西,不会太差 2.集成快 3.推送效率高,功能强,APP后台被杀的情况下同样能接受到推送. 废话少说,直接上代码: 源代码.zip
- CSS使用心得小结
CSS心得 最近对CSS的使用有一些小心得,在此写下来给大家分享分享 .最后附上选择器的实例代码. ------DanlV CSS是什么 层叠样式表(英文全称:Cascading Style Shee ...
- 结巴(jieba)中文分词及其应用实践
中文文本分类不像英文文本分类一样只需要将单词一个个分开就可以了,中文文本分类需要将文字组成的词语分出来构成一个个向量.所以,需要分词. 这里使用网上流行的开源分词工具结巴分词(jieba),它可以有效 ...
- JAVA中Socket的用法模拟服务端和客户端
<看透springMvc源代码分析与实践>学习笔记 Socket分为ServerSocket和Socket两个大类 ServerSocket用于服务端,可以通过accept方法监听请求,监 ...
- 微信小程序的登陆流程详解
由于小程序的登陆和登陆状态维护流程比较复杂,需要客户端和服务器的数次交互以及服务器端的相应处理,很多同学都觉得比较麻烦,所以特别写下这篇博客为大家梳理一下微信的登陆流程,同时加深对微信小程序与登陆状态 ...
- JVM学习001通过实例总结Java虚拟机的运行机制
JVM学习(1)——通过实例总结Java虚拟机的运行机制-转载http://www.cnblogs.com/kubixuesheng/p/5199200.html 文章转载自:http://www.c ...