`

IIS动态创建虚拟目录(转)

    博客分类:
  • C#
 
阅读更多

创建虚拟目录

DirectoryEntry是.Net给我们的一大礼物,他的名字我们就知道他的功能--目录入口。使用过ADSI的人都知道操作IIS,WinNT这些时,我们还需要提供他们的Path,操作IIS时,这个Path的格式为:
IIS://ComputerName/Service/Website/Directory

ComputerName:即操作的服务器的名字,可以是名字也可以是IP,经常用的就是localhost

Service:即操作的服务器,IIS中有Web,也有FTP,还有SMTP这些服务,我们主要是操作IIS的Web功能,因此此处就是"W3SVC",如果是FTP则应是"MSFTPSVC"

WebSite:一个IIS服务中可以包括很多的站点,这个就用于设置操作的站点。他的值是一个数字,默认是1,表示缺省站点,如果有其它,则从1开始依次类推。

Directory:不用说,即操作的目录名称,一个站点一般顶层目录为"ROOT",其它目录则是他的孩子(Child)。

首先我们获取一个站点的顶层目录(根目录):

DirectoryEntry rootfolder = new DirectoryEntry("IIS://localhost/W3SVC/1/ROOT");

如果我们创建这个对象是没有发生异常,则表示这个目录是真实存在的。

下面我们来添加新的虚拟目录,比如我们要加的是"Aspcn":

DirectoryEntry newVirDir = rootfolder.Children.Add("Aspcn","IIsWebVirtualDir");

newVirDir.Invoke("AppCreate",true);

newVirDir.CommitChanges();

rootfolder.CommitChanges();

创建目录的思路很简单,即在根目录的子集(rootfolder.Children)中再添加一条记录,这里使用的是DirectoryEntries类中的Add方法,它返回的是一个DirectoryEntry,表示新加入的目录,第一个参数是虚拟目录的名字,第二个则是Schema的类名以表明我们加入的目录类型。然后再使用DirectoryEntry的Invoke方法,调用ADSI中的"AppCreate"方法将目录真正创建(似乎不走这一步也可以创建目录成功,但是为了保险起见,大家还是用吧),最后便是依次调用新、根目录的CommitChanges方法,确认此次操作。

在创建新目录时,我们也可以同时给这个目录的属性赋值,但是我的实战经验告诉我,最好不要这样做,如果创建时就赋值,将有很多属性不能赋值成功,比如重要的表示真实目录的Path属性。因此飞刀建议大家最好是先创建目录,然后再赋值,即更新目录信息。

更新虚拟目录

相信大家对IIS都比较熟悉,了解IIS中一些重要的设置,如可读(AccessRead)、可写(AccessWrite)、可执行(AccessExecute)等。这些都可通过对DirectoryEntry的Properties属性集合的赋值来实现。赋值可以通过两种方式来完成:

第一种是调用Properties集合的Add方法,如:

dir.Properties["AccessRead"].Add(true);

第二种是对第一个索引值赋值:

dir.Properties["AccessRead"][0] = true;

这两种方法都是可行的。具体是要看你的喜好了。

在进行赋值之前我们还是要确定要要赋值的目标吧:)这里我们使用DirectoryEntries类的Find方法,如:

DirectoryEntry de = rootfolder.Children.Find("Aspcn","IIsVirtualDir");

找到了,我们就可以赋值了。赋值时一定要好好看看啊,虚拟目录的属性值可以超多,一查一大堆。。:(太多了,飞刀我也不重复了,大家去微软的站点上查:)

比较常用的有:AccessRead,AccessWrite,AccessExecute,AccessScript,DefaultDoc,EnableDefaultDoc,Path

删除虚拟目录

删除虚拟目录的方法也很简单,就是找到你要删除的虚拟目录,然后调用AppDelete方法。

DirectoryEntry de = rootfolder.Children.Find("Aspcn","IIsVirtualDir");

de.Invoke("AppDelete",true);

rootfolder.CommitChanges();

还有一种方法,就是调用Root目录的Delete方法。

object[] paras = new object[2];

paras[0] = "IIsWebVirtualDir"; //表示操作的是虚拟目录

paras[1] = "Aspcn";

rootfolder.Invoke("Delete",paras);

rootfolder.CommitChanges();

喜欢哪一种就看编程习惯了:))

关于我写的类

我写的那个类库,将这些进一步简化了。只需要调用一下Connect()方法,就可直接操作Create,Delete方法了,程序可以进一步简化,并且支持批量操作。

转自于 http://blog.csdn.net/liuyuehui110/article/details/6508176

分享到:
评论

相关推荐

    iis中虚拟目录的作用

    在IIS管理器中,可以通过以下步骤创建虚拟目录: 1. 打开IIS管理器。 2. 在左侧的树形列表中找到要添加虚拟目录的网站或应用程序。 3. 右键点击该网站或应用程序,选择“添加虚拟目录”。 4. 在弹出的对话框中输入...

    C#动态创建WEB/FTP虚拟目录

    例如,如果我们要在默认网站下创建虚拟目录,可以使用`DirectoryEntry("IIS://localhost/W3SVC/1/Root")`,其中"1"代表默认Web站点的ID。 3. **创建虚拟目录对象**:接下来,我们可以通过调用DirectoryEntry的`...

    ASP.NET对IIS中的虚拟目录进行操作.rar

    3. **设置权限**:创建虚拟目录后,需要为其分配合适的权限,包括读取、写入、执行等。这可以在IIS管理器中通过“身份验证”、“授权规则”和“目录安全性”设置完成。对于ASP.NET应用,通常需要匿名访问和Windows...

    IIS虚拟网站,虚拟目录安装设置,应用程序池ASPNET安装。

    创建虚拟目录的方法是在IIS管理器中选择目标网站,右键点击并选择“添加虚拟目录”,输入别名和物理路径,然后设置相应的权限。 应用程序池是IIS中管理进程的机制,每个应用程序池都包含一组相关应用程序,它们在...

    IIS服务虚拟目录控制代码

    4. **创建虚拟目录**:利用`IISApplication::Add`或`IISVirtualServer::CreateVirtualDirectory`方法,提供虚拟目录的别名(如"MyAlias")和其对应的物理路径(如"C:\path\to\virtual\directory")。 5. **设置属性...

    .NET2008实现,动态创建IIS站点

    在.NET 2008框架下,动态创建IIS(Internet Information Services)站点是一项重要的系统管理任务,尤其对于自动化部署和程序开发来说,能够极大提高效率。本文将深入探讨如何利用C#编程语言和.NET Framework 3.5...

    ASP基础入门-IIS的安装 架设 虚拟目录设置

    2. **创建虚拟目录**:在IIS管理器中,选中目标网站,右键点击“添加虚拟目录”。输入“别名”(如myapp)、“物理路径”(如D:\Websites\myapp),然后设置访问权限,点击“确定”。 3. **配置应用程序池**:虚拟...

    .Net中如何操作IIS的虚拟目录原理分析及实现方案

    .NET中创建虚拟目录的步骤通常如下: 1. 获取IIS站点的顶层目录(根目录)。通常情况下,这个根目录的路径格式为“IIS://ComputerName/W3SVC/WebsiteNumber/ROOT”。其中ComputerName指的是服务器的名称或IP地址,...

    虚拟IIS虚拟IIS

    1. 创建虚拟主机:在IIS管理器中,通过添加网站操作,设置网站的绑定(如IP地址、端口和主机头),选择物理路径,指定应用程序池。 2. 配置应用程序池:定义工作进程的运行用户、回收策略、内存限制等,以确保资源...

    Asp配置虚拟目录

    虚拟目录则是Web服务器中的一个重要概念,它允许我们为实际存储在不同物理位置的资源创建一个统一的访问路径,提高网站管理的灵活性。现在,我们将深入探讨如何在Asp环境中配置虚拟目录。 首先,虚拟目录对于Asp...

    asp虚拟服务器 iis 虚拟服务器 运行asp组件服务器

    2. **创建虚拟目录**: 在IIS管理器中,右键点击“网站”节点,选择“添加虚拟目录”。在此过程中,你需要指定别名(用于URL访问)、物理路径(存放ASP文件的本地目录)以及访问权限。 3. **配置ASP设置**: 找到并...

    asp运行的虚拟iis环境制作工具

    然而,如果在没有安装IIS的情况下需要运行ASP程序,可以借助特定的工具来创建一个虚拟的IIS环境。 标题中的"asp运行的虚拟iis环境制作工具"是指一种能够模拟IIS环境的软件,使得用户无需实际安装IIS也能执行ASP代码...

    WEB发布虚拟目录

    在IT行业中,Web发布虚拟目录是一项重要的技术,它允许我们以一种更加灵活和高效的方式管理Web服务器上的资源。本文将深入探讨这个主题,主要关注基于C++开发的Web服务器发布和虚拟目录的概念、作用以及实现方式。 ...

    dotnet对虚拟目录的操作

    在代码层面,可以使用`System.Web.Configuration`命名空间下的`VirtualDirectoryMapper`类来动态创建虚拟目录。 2. **访问虚拟目录**:在C#中,可以使用`System.IO`命名空间的`DirectoryInfo`或`FileInfo`类来操作...

    IIS服务器配置课件

    创建虚拟目录,可以右键选择站点,然后在菜单中选择“新建”->“虚拟目录”,指向实际目录的位置,这样各个站点都能访问到这个目录的资源,提高了资源利用效率。 总结来说,IIS服务器配置涉及Web站点的创建、IP地址...

    IIS7.0 端到端开发人员概述,iis7视频教学系列

    在实际操作中,了解如何创建和配置网站、应用程序池以及虚拟目录至关重要。例如: 1. 创建网站:通过IIS管理控制台,可以轻松创建新的网站,指定物理路径、绑定IP地址、端口号和主机头等信息。 2. 配置应用程序池...

    快速IIS配置工具

    在传统的IIS配置中,管理员通常需要通过“我的电脑”右键菜单进入“管理”,然后选择“IIS”进行各种设置,包括创建网站、虚拟目录、应用程序池等。这个过程可能涉及多个步骤,对于频繁进行IIS管理的用户来说,确实...

    一个可以构造虚拟目录的asp组件

    4. **URL重写与路由**:虽然组件能够创建虚拟目录,但可能还需要结合URL重写规则(如IIS的URL Rewrite模块)来实现更灵活的路由策略,以确保浏览器可以正确解析和访问虚拟路径。 5. **性能与安全考虑**:频繁地创建...

    IIS安装IIS386

    教师可以创建多个虚拟主机,每个学生可以拥有自己的实验环境,进行编程、测试和部署。 总的来说,IIS386(可能是对32位IIS的一个特殊版本或简称)是Windows XP SP3环境下提供Web服务的重要工具,对于教学和小型企业...

    《网络应用服务管理》形考任务-实训1:使用IIS搭建Web服务器

    3. **创建虚拟目录**:在网站下右键添加虚拟目录,指向ASP.NET应用程序的物理路径。 4. **权限设置**:确保应用程序池的标识对虚拟目录有读写权限。 5. **测试运行**:访问`http://服务器IP:端口号/虚拟目录名`,...

Global site tag (gtag.js) - Google Analytics