zoukankan      html  css  js  c++  java
  • 对虚拟目录的操作(转)

    一、查看虚拟目录是否存在 
    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] 的值为虚拟目录对应的物理地址; 

    三、更新虚拟目录 
    public void Update(string virtualdirname) 

       
    //判断需要更改的虚拟目录是否存在 
       if(_IsExitesVirtualDir(virtualdirname)) 
       

        DirectoryEntry _rootEntry ; 
        _rootEntry 
    = new DirectoryEntry("IIS://localhost/W3SVC/1/root"); 
        DirectoryEntry ode 
    = _rootEntry.Children.Find(virtualdirname,"IIsWebVirtualDir"); 
        UpdateDirInfo(ode); 
       }
     
    }
     
    private void UpdateDirInfo(DirectoryEntry de) 

       de.Properties[
    "AnonymousUserName"][0= AnonymousUserName; 
       de.Properties[
    "AnonymousUserPass"][0= AnonymousUserPass; 
       de.Properties[
    "AccessRead"][0= boolen; 
       de.Properties[
    "AccessExecute"][0= boolen; 
       de.Properties[
    "AccessWrite"][0= boolen; 
       de.Properties[
    "AuthBasic"][0= boolen; 
       de.Properties[
    "AuthNTLM"][0= boolen; 
       de.Properties[
    "ContentIndexed"][0= boolen; 
       de.Properties[
    "EnableDefaultDoc"][0= boolen; 
       de.Properties[
    "EnableDirBrowsing"][0= boolen; 
       de.Properties[
    "AccessSSL"][0= boolen; 
       de.Properties[
    "AccessScript"][0= boolen; 
       de.Properties[
    "DefaultDoc"][0= DefaultDoc; 
       de.Properties[
    "Path"][0= Path; 
       de.CommitChanges(); 
    }
     

    四、删除虚拟目录 
    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(); 
    }
     

    作者:wpf之家
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    Promise笔记
    srping-cloud-stream集成rocketmq
    mysql锁
    profiling分析
    mysql慢查询
    sql语句中in与exists的使用区别
    数据库死锁的解决办法
    死锁的形成以及处理
    百万数据修改索引,百万数据修改主键
    创建视图索引
  • 原文地址:https://www.cnblogs.com/wpf123/p/2347372.html
Copyright © 2011-2022 走看看