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

使用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的基本功能已经实现了。

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

更多相关:

  • importjava.security.SecureRandom;importjavax.crypto.Cipher;importjavax.crypto.SecretKey;importjavax.crypto.SecretKeyFactory;importjavax.crypto.spec.DESKeySpec;//结果与DES算...

  • 题目:替换空格 请实现一个函数,把字符串 s 中的每个空格替换成"%20"。 输入:s = "We are happy." 输出:"We%20are%20happy." 限制: 0 <= s 的长度 <= 10000 解题: 时间复杂度:O(n) 空间复杂度:O(n) class Solution { public:s...

  • 在C++11标准库中,string.h已经添加了to_string方法,方便从其他类型(如整形)快速转换成字面值。 例如: for (size_t i = 0; i < texArrSize; i++)RTX_Shader.SetInt(string("TexArr[") + to_string(i) + "]", 7 + i);...

  • Ubuntu 14.04安装并升级之后,变成楷体字体非常难看,我昨天搞了一晚上,终于理了个头绪,这里整理一下。 经过网上调研,大家的一致看法是,使用开源字体库文泉驿的微黑字体效果比较理想,甚至效果不输windows平台的雅黑字体。下面我打算微黑来美化Ubuntu 14.04. 1.安装文泉驿微黑字体库 sudo aptitude...

  • 使用string时发现了一些坑。 我们知道stl 容器并不是线程安全的,所以在使用它们的过程中往往需要一些同步机制来保证并发场景下的同步更新。 应该踩的坑还是一个不拉的踩了进去,所以还是记录一下吧。 string作为一个容器,随着我们的append 或者 针对string的+ 操作都会让string内部的数据域动态增加,而动态增加的...