在最新发布的启明星Portal里,增加了安装程序,下面说一下.NET对IIS7操作。IIS7的操作和IIS5/6有很大的不同,在IIS7里增加了 Microsoft.Web.Administration 命名空间里,增加了ServerManager、Site几个大类来操作IIS7。

下面是一些核心代码,可以直接使用

1)建立虚拟目录

建立虚拟目录时,默认使用“Default Web Site”,也就是默认建立在Default Web Site, CreateVdir需要两个参数:虚拟路径名称和实际的物理路径

public static bool CreateVdir(string vdir, string phydir)
{

ServerManager serverManager = new ServerManager();
Site mySite = serverManager.Sites["Default Web Site"];
mySite.Applications.Add("/" + vdir, phydir);
serverManager.CommitChanges();
return true;

}

这里建立的是在Default Web Site下的虚拟目录,将上面的mysite修改为

Site mySite = iisManager.Sites.Add("test", "http", "*:80:" + WebName + ".intranet." + TLD, @"c:\Webs\" + WebName);

则可以建立网站。这2个区别是:你建立一个网站。前面的访问示意URL是 http://www.dotnetcms.org/book ,而后者是http://book.dotnetcms.org

接下来创建应用程序池

public static void CreateAppPool( string appPoolName)
{
try
{
ServerManager serverManager = new ServerManager();
serverManager.ApplicationPools.Add(appPoolName);
ApplicationPool apppool = serverManager.ApplicationPools[appPoolName];
apppool.ManagedPipelineMode = ManagedPipelineMode.Classic;
serverManager.CommitChanges();
apppool.Recycle();
}
catch
{ }
}

这里ManagedPipelineMode的取值 ManagedPipelineMode.Classic;IIS7支持经典Classic方式和Interget集成方式,在集成方式下

自定义的handler和Module可能无效,如果你想和以前IIS5/6版本兼容可以使用Classic方式,否则建议使用集成方式。

下面代码演示了如何把虚拟目录分配到应用程序池,和IIS5/6最大的区别是vdir其实是vdir path,所以这里加了一个“/”,表示一个虚路径。

public static void AssignVDirToAppPool(string vdir, string appPoolName)
{

try
{
ServerManager serverManager = new ServerManager();
Site site = serverManager.Sites["Default Web Site"];
site.Applications["/" + vdir].ApplicationPoolName = appPoolName;
serverManager.CommitChanges();
}
catch
{

}

}

最后增加一个删除操作

public static bool DeleteVdir(string vDirName)
{
try
{
ServerManager serverManager = new ServerManager();
Site mySite = serverManager.Sites["Default Web Site"];
Microsoft.Web.Administration.Application application = mySite.Applications["/" + vDirName];
mySite.Applications.Remove(application);
serverManager.CommitChanges();
return true;
}
catch
{
return false;
}
}

到此,.NET操作IIS7的基本功能已经实现了。

转载于:https://www.cnblogs.com/mqingqing123/archive/2011/05/23/2053994.html

使用ASP.NET操作IIS7中使用应用程序相关推荐

  1. ASP.NET在IIS7中上下文中不可用

    在将一个比较老的版本net1.1的网站移植到Window7的IIS下时,遇到了如下错误: 请求在此上下文中不可用 说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该 ...

  2. asp.net在IIS7中更改网站的.net framework框架版本

    一.建立网站时设置.net框架版本: 二.对于已经添加的应用程序设置.net框架版本 三.更改IIS 默认.net框架版本

  3. 在ASP.NET中重写URL 方法三:在IIS7中使用HttpModule 实现无扩展名的URL重写

    上述的HttpModule方法在你要重写的URL含有.aspx 扩展名或者包含另一个被设置为ASP.NET处理的扩展名的情形下一切都工作.你这么做的话,不需要任何特定的服务器配置,你只要把你的应用拷贝 ...

  4. win2008支持mysql asp.net_Win7、win2008中让IIS7支持asp的方法

    Win7或Windows server 2008中IIS7支持ASP+Access解决方法. 1. 让IIS7支持ASP Win7或Windows server 2008中IIS7是默认不安装的,所以 ...

  5. asp.net操作office时报错“检索 COM 类工厂中 CLSID 为 {...} 的组件时失败,原因是出现以下错误: 80070005。”

    在asp.net操作office组件时,会报错"检索 COM 类工厂中 CLSID 为 {...} 的组件时失败,原因是出现以下错误: 80070005.",由于office组件是 ...

  6. Windows 2008 VS2008 IIS7 中调试Asp.net 2.0 两个问题

    装好了Windows 2008,VS2008,想在新的系统环境下调试一下原来的asp.net 2.0页面,设置好IIS根目录,运行出现 问题1:未能加载文件或程序集system.web.extensi ...

  7. IIS7中的站点、应用程序和虚拟目录详细介绍

    这里说的不是如何解决路径重写或者如何配置的问题,而是阐述一下站点(site),应用程序(application)和虚拟目录(virtual directory)概念与作用,已及这三个东西在IIS6与I ...

  8. ASP.NET操作Word的IIS权限设置

    ASP.NET账号在默认情况下是没有权限操作Microsoft Office对象的,如果不进行权限的配置,代码会抛出类似以下的异常: 检索 COM 类工厂中 CLSID 为 {00024500-000 ...

  9. 如何将IIS6服务器的网站批量迁移到IIS7中

    如何将IIS6服务器的网站批量迁移到IIS7中 技术文档 2010-12-02 16:21:44 阅读7 评论0   字号:大中小 订阅 实验环境 源IIS7服务器 OS:Windows server ...

最新文章

  1. 文件目录管理及vi编辑器的使用
  2. 什么是网络地址转换(NAT)—Vecloud 微云
  3. 1086 就不告诉你
  4. 工作320:uni-预加载问题
  5. python撩妹代码_Python十行代码让你秒变撩妹达人!想学?
  6. ubuntu中wps缺失字体
  7. p70_域名解析系统DNS
  8. java设计模式之用王者荣耀打开观察者模式(附代码实例)每天一学设计模式
  9. 【正点原子MP157连载】第十三章 外部中断实验-摘自【正点原子】STM32MP1 M4裸机CubeIDE开发指南
  10. 技术分享PPT整理(一):Bootstrap基础与应用
  11. 深度解析 steam密码js逆向(篇幅很长)
  12. ADB如何无线连接手机操作方法
  13. HTML爱心网页制作[樱花+爱心]
  14. arm触摸屏的头文件_ARM触屏校准程序
  15. Improved Techniques for Training GANs翻译与理解
  16. Thunderbolt3 方案介绍及应用案例介绍
  17. 论文里引用专利参考文献怎么写?
  18. 成绩管理系统(C语言)完整代码,纯C的练手程序
  19. VAD语音分割算法原理与简单实现
  20. linux编译jsoncpp

热门文章

  1. Django mysql 多线程_【实例:利用Django管理后台管理IP地址】(四)Django test+多线程+数据库+(踩坑)...
  2. c语言n1=(n2=(n3=0)),计算机二级C语言考试选择题(带答案)
  3. mysql配置文件没有spring_spring cloud config使用mysql存储配置文件
  4. android点击展开textview,《Android APP可能有的东西》之UI篇:展开TextView全文
  5. 习题8_6与习题9_2
  6. document.getElementById与document.getElementsById的区别
  7. 少年郎,你为什么没有对象?是缺点“土味情话”
  8. 力扣(LeetCode)刷题,简单题(第6期)
  9. ROS系统——部署OpenVINO版Nanodet超轻量目标检测器
  10. 【深度学习】(1) 前向传播,附python完整代码