一、查看虚拟目录是否存在 
private bool IsExitesVirtualDir(string virtualdirname) 

   bool exited =false; 
   DirectoryEntry _entry = new DirectoryEntry("IIS://localhost/W3SVC/1/Root"); 
   DirectoryEntries _entries = _entry.Children; 
   foreach(DirectoryEntry _cen in _entries) 
   { 
    if(_cen.Name == virtualdirname) 
     exited = true; 
   } 
   return exited; 

其中virtualdirpath指要建立的虚拟目录名称;

二、新增虚拟目录 
private void CreateVirtualDir(string virtualdirname,string logicDir) 

   if(IsExitesVirtualDir(virtualdirname)) 
        DeleteVirtualDir(virtualdirname);

DirectoryEntry _rootEntry ; 
   _rootEntry = new DirectoryEntry("IIS://localhost/W3SVC/1/root"); 
   DirectoryEntry _newVirDir; 
   _newVirDir = _rootEntry .Children.Add(virtualdirpath,"IIsWebVirtualDir"); 
   _newVirDir.Invoke("AppCreate",true); 
   _newVirDir.CommitChanges(); 
   _rootEntry .CommitChanges();

_newVirDir.Properties["AnonymousPasswordSync"][0] = true; 
   _newVirDir.Properties["Path"][0] = logicDir + @"virtualdirentry\virtualname\"; 
   _newVirDir.CommitChanges(); 

_newVirDir.Properties["Path"][0] 的值为虚拟目录对应的物理地址;

三、删除虚拟目录 
private void DeleteVirtualDir(string virtualdirname) 

   DirectoryEntry _rootEntry ; 
   _rootEntry = new DirectoryEntry("IIS://localhost/W3SVC/1/root"); 
   object[] paras = new object[2]; 
   paras[0] = "IIsVirtualDir"; 
   paras[1] = virtualdirname; 
   _rootEntry .Invoke("Delete",paras); 
   _rootEntry .CommitChanges(); 
}

如果是在B/S模式下的应用可能会遇到操作权限的问题,可根据不同的系统尝试一下方法!

1,打开web.config,然后在system.web节点中添加一属性 <identity impersonate="true" />
2,目录的EveryOne权限设为全部。

3,把aspnet设置成 system 权限

.net C# 对虚拟目录IIS的操作的更多相关文章

  1. asp.net 创建虚拟目录 iis创建虚拟目录

    这几天本人接了个档案管理查询系统的小项目,踩过的坑. 其实功能都挺简单的,大致要求客户有很多pdf文档,为了方便管理,所有要开发一个相当于文件管理系统,本人正好有现成的文件管理系统,修改下就可以.其中 ...

  2. 用C#操作IIS创建虚拟目录和网站

    #region CreateWebsite 添加网站 public string CreateWebSite(string serverID, string serverComment, string ...

  3. IIS虚拟目录与UNC路径权限初探

    最近在一个项目中涉及到了虚拟目录与UNC路径的问题,总结出来分享给大家. 问题描述 某客户定制化项目(官网),有一个图片上传的功能.客户的Web机器有10台,通过F5负载均衡分摊请求. 假设这10台机 ...

  4. 如何: 重命名在 IIS 6.0 中的虚拟目录

    警告如果错误地为编辑元数据库,您会导致严重的问题,甚至可能需要重新安装使用元数据库的任何产品. Microsoft 不能保证可以解决问题,如果您错误地编辑元数据库产生.编辑元数据库需要您自担风险. 注 ...

  5. Ajax 访问 或 获取 IIS 虚拟目录

    使用场景 最近用 .net core mvc 写了一个工具类的项目,作为我们项目的后台管理网站使用.第一次被老大拿去部署的时候被告知不可用,同样的代码在我电脑和我的iis上都可以使用的啊. 后来才知道 ...

  6. iis虚拟目录实现分布式文件服务器

    前提:假定有2台服务器:服务器a和服务器b,则服务器a和b须在同一局域网内 服务器设定:a为web服务器,b为文件服务器.这里服务器环境是:Windows Server 2008 R2 大致步骤如下: ...

  7. 利用iis虚拟目录实现文件服务器功能(分布式存储)

    要求说明: 通过网站上传文件保存到统一的文件服务器上. 服务器说明: 1.文件服务器以下称为FilesServer,IP地址为:192.168.1.213 2.Web服务器为以下称为WebServer ...

  8. 给 IIS Express 配置虚拟目录

    使用 vs2015 打开旧项目,之前使用 iis 配置站点,然后在 vs 中附加 w3wp.exe 进行开发和调试的. 由于种种原因 iis 上配置站点各种失败. 之后发现,其实在 vs2015 中按 ...

  9. 利用NTFS权限与虚拟目录,在IIS 6.0的默认FTP站点中做用户隔离。

    默认FTP站点为不隔离用户站点,利用NTFS权限设置,达到仅能访问指定目录效果. 是否允许匿名连接 FTP站点主目录:站点范围内有没有用户需要上传,有的话,要勾选“写入”:具体用户使用NTFS还给予写 ...

随机推荐

  1. easyui datagrid去掉加载提示

    掉这个等待效果的方法:查了easyui的api,datagrid没有去掉这个遮罩层的方法或者属性,在网上找了半天也没人碰到相同的问题(可能比较easy就解决了吧).还好easyui是开源的,就研究它的 ...

  2. Xshell小技巧

    1. 鼠标右键粘贴 工具->选项->鼠标->向右按钮->(paste the clipboard contents.) 2. 选定文本自动复制到剪贴板 工具->选项-&g ...

  3. MyEclipse设置编码方式

    1.windows->Preferences……打开"首选项"对话框,左侧导航树,导航到general->Workspace, 右侧Text file encoding ...

  4. HBase - Phoenix剖析

    1.概述 在<Hadoop-Drill深度剖析>一文当中,给大家介绍了Drill的相关内容,就实时查询来说,Drill基本能够满足要求,同时还可以做一个简单业务上的聚合,如果在使用Hive ...

  5. 我的web框架

    我的web框架 ========================================================== 前端:css(bootstrap,自己的代码片段),js(jque ...

  6. Spark源码系列(二)RDD详解

    1.什么是RDD? 上一章讲了Spark提交作业的过程,这一章我们要讲RDD.简单的讲,RDD就是Spark的input,知道input是啥吧,就是输入的数据. RDD的全名是Resilient Di ...

  7. nn_slow和nn_fast

    #define nn_fast(x) __builtin_expect ((x), 1) #define nn_slow(x) __builtin_expect ((x), 0) __builtin_ ...

  8. PHP/MYSQL UTF8 中文排序

    1. 需要在php数组中用中文排序,但是一般使用utf8格式的文件,直接用asort排序不行.用gbk和gb2312可以.这跟几种格式的编码有关系.gbk和gb2312本身的编码就是用拼音排序的. f ...

  9. 如何重置CentOS 7的Root密码?设置CentOS 7的Root密码的方法与步骤

  10. c++类的 static 和const那些事

    1.static成员变量(非const)必须在类外定义,在类中只是作为声明(声明其scope为该类),不能使用类初始化成员列表来初始化,只能在定义的时候初始化. 2.static const的成员变量 ...