在 asp.net 中 ,用C# /VB.NET 怎样建立 虚拟 目录! ??(立即结账)

smartcreater 2003-10-20 09:19:02
在 asp.net 中 ,用C# /VB.NET 怎样建立 虚拟 目录! ??(立即结账)
您可以给出 实例 代码 吗?
--------------------------------
期待您的回应
...全文
37 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
suhuoqiang 2003-10-21
  • 打赏
  • 举报
回复
谢谢你rgbcn(rgbcn) ( ) 信誉
alan1698 2003-10-20
  • 打赏
  • 举报
回复
你建立新的WEB应用程序就自动建立虚拟目录了。
wangjun99212 2003-10-20
  • 打赏
  • 举报
回复
你可以使用iis 、
rgbcn 2003-10-20
  • 打赏
  • 举报
回复
//假如虚拟目录名为"Webtest",先在项目中引用
//System.DirectoryServices.dll,再
using System.DirectoryServices;
protected System.DirectoryServices.DirectoryEntry dirroot;

1、添加新的虚拟目录
DirectoryEntry newVirDir = dirroot.Children.Add("Webtest","IIsWebVirtualDir");
newVirDir.Invoke("AppCreate",true);
newVirDir.CommitChanges();
dirroot.CommitChanges();
2、更改虚拟目录属性
//虚拟目录的属性较常用的有:AccessRead,AccessWrite,AccessExecute,AccessScript,DefaultDoc,EnableDefaultDoc,Path等

DirectoryEntry Dirport = dirroot.Children.Find("Webtest","IIsVirtualDir");
Dirport .Properties["AccessRead"][0] = true;

3、删除虚拟目录
DirectoryEntry Dirport = dirroot.Children.Find("Webtest","IIsVirtualDir");
Dirport.Invoke("AppDelete",true);
dirroot.CommitChanges();
或者:

object[] part = new object[2];
part[0] = "IIsWebVirtualDir";
part[1] = "Webtest";
dirroot.Invoke("Delete",part);
dirroot.CommitChanges();

---------------------------------------------------------------

你可以使用iis admin对象操纵iis
rgbcn 2003-10-20
  • 打赏
  • 举报
回复
不知你是在程序中建,还是手动建立
手动建立参考楼上
若程序中建立参考
创建虚拟目录

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();

webdiyer 2003-10-20
  • 打赏
  • 举报
回复
http://www.c-sharpcorner.com/Code/2002/July/CreateVirtualDirs.asp

http://www.codeproject.com/csharp/virtualdir.asp
asp.net设计模式》涵盖了开发企业级asp.net应用程序的知名模式和最佳实践。本书用到的模式可以用于从asp.net1.0到asp.net 4.0的任何版本。不必管模式本身所用的语言,可以将模式用于任何面向对象编程语言。   《asp.net设计模式》是为那些熟悉.net框架但希望了解如何改进编码方式以及如何运用设计模式、设计原则和最佳实践来提高代码的可维护性和适应性的asp.net开发者而写的。那些以前已经体验过设计模式的读者可能希望跳过本书的第ⅰ部分,这部分介绍了gof提出的设计模式以及其他常见设计原则,包括s.o.l.i.d原则和martinfowler的企业设计模式。所有的代码示例均采用c#语言编写,但这些概念可以非常轻松地用于vb.net。 第Ⅰ部分 模式与设计原则 第1章 成功应用程序的模式 1.1 设计模式释义 1.1.1 起源 1.1.2 必要性 1.1.3 有效性 1.1.4 局限性 1.2 设计原则 1.2.1 常见设计原则 1.2.2 S.O.L.I.D.设计原则 1.3 Fowler的企业设计模式 1.3.1 分层 1.3.2 领域逻辑模式 1.3.3 对象关系映射 1.3.4 Web表示模式 1.3.5 基本模式、行为模式和结构模式 1.4 其他有名的设计实践 1.4.1 测试驱动设计 1.4.2 领域驱动设计 1.4.3 行为驱动设计 1.5 小结 第2章 剖析模式的模式 2.1 如何阅读设计模式 2.1.1 GoF模式模板 2.1.2 简化模板 2.2 设计模式分组 2.2.1 创建型 2.2.2 结构型 2.2.3 行为型 2.3 如何选择和运用设计模式 2.4 快速模式示例 2.4.1 根据设计原则进行重构 2.4.2 根据Adapter模式进行重构 2.4.3 利用企业模式 2.5 小结 第Ⅱ部分 剖析ASP.NET应用程序:学习并应用模式 第3章 应用程序分层与关注点分离 3.1 应用程序体系结构与设计 3.1.1 反模式:智能UI 3.1.2 分离关注点 3.2 小结 第4章 业务逻辑层:组织 4.1 理解业务组织模式 4.1.1 Transaction Script 4.1.2 Active Record 4.1.3 Domain Model 4.1.4 Anemic Domain Model 4.1.5 领域驱动设计 4.2 小结 第5章 业务逻辑层:模式 5.1 应用设计模式 5.1.1 Factory Method模式 5.1.2 Decorator模式 5.1.3 Template Method模式 5.1.4 State模式 5.1.5 Strategy模式 5.2 应用企业模式 5.2.1 Specification模式 5.2.2 Composite模式 5.2.3 Layer Supertype模式 5.3 应用设计原则 5.3.1 依赖倒置原则和依赖注入模式 5.3.2 接口分离原则 5.3.3 里氏替换原则 5.4 小结 第6章 服务层 6.1 服务层介绍 6.1.1 SOA 6.1.2 SOA的4项信条 6.1.3 Facade设计模式 6.2 应用Messaging模式 6.2.1 Document Message和 Request-Response模式 6.2.2 Reservation模式 6.2.3 Idempotent模式 6.3 SOA示例 6.3.1 领域模型和资源库 6.3.2 服务层 6.3.3 客户端代理 6.3.4 客户端 6.4 小结 第7章 数据访问层 7.1 DAL介绍 7.2 数据访问策略 7.2.1 Repository模式 7.2.2 Data Access Objects模式 7.3 数据访问模式 7.3.1 Unit of Work模式 7.3.2 数据并发控制 7.3.3 Lazy Loading和Proxy模式 7.3.4 Identity Map模式 7.3.5 Query Object模式 7.4 使用对象关系映射器 7.4.1 NHibernate 7.4.2 MS Entity Framework 7.4.3 ORM代码示例 7.5 小结 第8章 表示层 8.1 反转控制 8.1.1 Factory Method设计模式 8.1.2 Service Locator 8.1.3 IoC容器 8.1.4 StructureMap 8.2 Model-View-Presenter 8.3 Front Controller 8.3.1 Command模式 8.3.2 Chain of Responsibility模式 8.4 Model-View-Controller 8.4.1 ViewModel模

62,039

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧