欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-02-13 13:00:16
在最新发布的启明星portal里,增加了安装程序,下面说一下.net对iis7操作。iis7的操作和iis5/6有很大的不同,在iis7里增加了 microsoft.web...

在最新发布的启明星portal里,增加了安装程序,下面说一下.net对iis7操作。iis7的操作和iis5/6有很大的不同,在iis7里增加了 microsoft.web.administration 命名空间里,增加了servermanager、site几个大类来操作iis7。

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

建立虚拟目录

建立虚拟目录时,默认使用“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的基本功能已经实现了,希望对大家的学习有所帮助。