使用ASP.NET操作IIS7中使用应用程序

 

在最新发布的启明星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的基本功能已经实现了。

使用ASP.NET操作IIS7中使用应用程序的更多相关文章

  1. ASP.NET 操作Excel中的DCOM配置方式

    具体配置方式如下: 1. 组件服务管理窗口 在运行栏中输入命令:dcomcnfg,打开组件服务管理窗口,在组件服务->计算机->我的电脑->DCom配置->找到Microsof ...

  2. ASP.NET在IIS7中如何更改网站的.net framework框架版本

    IIS7安装好以后使用了.net 2.0 framework框架,经过折腾发现如下方法可以更改框架版本,从而可以部署使用其他版本框架开发的网站 方法一:建立网站时设置.net框架版本 方法二:对于已经 ...

  3. IIS7中 ASP.NET授权功能如何实现对静态文件的控制

    IIS7中 ASP.NET授权功能如何实现对静态文件的控制 前序 .net提供了3种用户认证的方式,分别是Windows,Forms,Passport.这几种形式的定义可以在网站根目录下Web.con ...

  4. ASP.NET在IIS7.5(IIS7)配置伪静态

    http://jingyan.baidu.com/article/67508eb4ff92c69cca1ce49a.html 我相信不少站长都遇到个头疼的问题..NET如何在IIS7或者IIS7.5下 ...

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

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

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

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

  7. ASP.NET操作Word的IIS权限配置

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

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

    IIS7中的站点.应用程序和虚拟目录详细介绍 这里说的不是如何解决路径重写或者如何配置的问题,而是阐述一下站点(site),应用程序(application)和虚拟目录 (virtual direct ...

  9. 通过重建Hosting系统理解HTTP请求在ASP.NET Core管道中的处理流程[下]:管道是如何构建起来的?

    在<中篇>中,我们对管道的构成以及它对请求的处理流程进行了详细介绍,接下来我们需要了解的是这样一个管道是如何被构建起来的.总的来说,管道由一个服务器和一个HttpApplication构成 ...

随机推荐

  1. LeetCode(6) - ZigZag Conversion

    这个题的要求是给你一个字符串,和一个行数,例如(s = "mysisteristhemostlovelygirl" , row = 4),每一行一个字符串,但是s却得按照zigza ...

  2. 轻松学Shell之认识正规表达式

    离线下载观看:http://down.51cto.com/data/148117   650) this.width=650;" onclick='window.open("htt ...

  3. T-SQL游标

    游标是面向行的,它会使开发人员变懒,懒得去想用面向集合的查询方式实现某些功能. 在性能上,游标会迟更多的内存,减少可用的并发,占用带宽,锁定资源,当然还有更多的代码量. 用一个比喻来说明为什么游标会占 ...

  4. Rdlc报表出现空白页解决方法

    在使用RDLC报表时,碰到这种情况:当只有一页数据时,报表确显示两页,第二页除了报表头之外数据为空.然后,当有多页数据时,最后一页为空. RDLC報表設計好後,在ReportViewer預覽報表時,頁 ...

  5. windows 无法启动asp.net 状态服务 错误 0x8007277a

    处理方法:如果在启动ASP.NET State Service服务时遇到问题0x8007277a即无法启动或初始化,请尝试在命令行(CMD)中输入netsh winsock  reset(有可能是wi ...

  6. Java并发编程:Timer和TimerTask

    Java并发编程:Timer和TimerTask 下面内容转载自: http://blog.csdn.net/xieyuooo/article/details/8607220 其实就Timer来讲就是 ...

  7. 4.VS2010C++建立DLL工程

    相关资料: http://blog.csdn.net/jshayzf/article/details/23608705 http://blog.csdn.net/huang_xw/article/de ...

  8. HDU 1525 Euclid's Game (博弈)

    Euclid's Game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

  9. POJ1463 Strategic game (最小点覆盖 or 树dp)

    题目链接:http://poj.org/problem?id=1463 给你一棵树形图,问最少多少个点覆盖所有的边. 可以用树形dp做,任选一点,自底向上回溯更新. dp[i][0] 表示不选i点 覆 ...

  10. servlet-3_0-final-spec

    <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns="http://w ...