当前位置: 首页 > 编程语言 > C#

C#.NET创建虚拟目录详解

时间:2023-04-10 19:46:01 C#

目录使用后台配置创建使用epilogue使用后台虚拟目录(virtualdirectory),计算机术语,每个Internet服务可以从多个目录发布。通过使用通用命名约定(UNC)名称、用户名和访问密码指定目录,每个目录都可以位于本地驱动器或网络上。指定客户端URL地址,服务会将整个发布目录集作为目录树提交给客户端。主机目录是“虚拟”目录树的根目录。虚拟目录的实际子目录也可供客户端使用。只有http://www.服务支持虚拟服务器;FTP和gopher服务只能有一个主机目录。虚拟目录不会出现在目录列表中(也称为http://www.服务的“目录浏览”)。要访问虚拟目录,用户必须知道虚拟目录的别名并在浏览器中键入URL才能访问它。简单来说:一般情况下,我们的文件保存路径就是默认的根目录。但是,当你需要访问其他磁盘中的数据时,你需要创建一个虚拟目录来访问。那么如何创建和使用呢?话不多说,走吧!配置1,参考使用System.DirectoryServices;2、在web.config文件中下添加一个节点:其中userName为计算机用户名,password为计算机登录密码,如果没有,请填空。这个标识是操作iis的虚拟目录所必需的。新建一个helper类,然后编写如下代码(备注写的很清楚):   ///

///删除虚拟路径//////publicstaticvoidDeleteVirtualDir(stringvirtualdirname){DirectoryEntry_rootEntry;_rootEntry=newDirectoryEntry("IIS://localhost/W3SVC/"+SiteId+"/root");对象[]参数=新对象[2];paras[0]="IIsVirtualDir";paras[1]=虚拟目录名;_rootEntry.Invoke("删除",参数);_rootEntry.CommitChanges();}//////创建虚拟目录//////iis站点ID///virtual文件夹名称///物理路径///用户名///用户密码///应用池Id///publicstaticstringCreateVirtualDir(stringsiteId,stringdirName,stringpath,stringuserName,stringuserPass,stringappPoolId){stringconstIISWebSiteRoot="IIS://localhost/W3SVC/"+siteId+"/ROOT";stringvirtualDirName=dirName;//虚拟目录名称stringphysicalPath=path;尝试{DirectoryEntryroot=newDirectoryEntry(constIISWebSiteRoot);foreach(System.DirectoryServices.DirectoryEntryvinroot.Children){if(v.Name==dirName){DeleteVirtualDir(dirName);}}DirectoryEntrytbEntry=root.Children.Add(virtualDirName,"IIsWebVirtualDir");tbEntry.Invoke("AppCreate",true);//设置虚拟目录指向的物理路径tbEntry.Properties["Path"][0]=physicalPath;//设置读权限tbEntry.Properties["AccessRead"][0]=true;//允许写入tbEntry。属性["AccessWrite"][0]=false;//脚本资源访问tbEntry.Properties["AccessExecute"][0]=false;//允许匿名访问tbEntry.Properties["AuthAnonymous"][0]=true;//设置目录的安全性,0表示不允许匿名访问,1表示允许,3为基本认证,7为windows继承认证tbEntry.Properties["AuthFlags"][0]=1;//允许基本身份验证tbEntry.Properties["AuthBasic"][0]=false;//允许WIndows集成认证tbEntry.Properties["AuthNTLM"][0]=false;//索引这个资源tbEntry.Properties["ContentIndexed"][0]=false;//目录浏览tbEntry.Properties["EnableDirBrowsing"][0]=false;//脚本可执行tbEntry.Properties["AccessScript"][0]=true;//允许父路径tbEntry.Properties["AspEnableParentPaths"][0]=true;//应用名称tbEntry.Properties["AppFriendlyName"][0]=virtualDirName;//应用保护tbEntry.Properties["AppIsolated"][0]=2;//设置默认文档//tbEntry.Properties["DefaultDoc"][0]="index.asp,index.html,index.htm";tbEntry.Properties["EnableDefaultDoc"][0]=true;//日志访问tbEntry.Properties["DontLog"][0]=true;////用户名//tbEntry.Properties["AnonymousUserName"][0]="Administrator";////用户密码//tbEntry.Properties["AnonymousUserPass"][0]="";////程序池//tbEntry.Properties["AppPoolId"][0]=appPoolId;tbEntry.CommitChanges();根.CommitChanges();返回“1”;}catch(Exceptionex){//返回“0”;返回ex.Message+"
"+ex.Source;}}使用我们在项目运行时调用CreateVirtualDir函数,但并不是所有的都需要创建虚拟目录这里我在配置文件中设置了一个参数。用于判断是否启用虚拟目录。然后在配置文件中也有一个设置的物理路径。仅供参考。iis发布运行后,就可以通过自己创建的虚拟路径访问了!如图:结束语到这里基本就结束了。没有什么特别难的操作,但是如果能结合配置文件灵活设置的话会很方便。减少发布后的繁琐操作(无需手动创建虚拟目录)。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: