• 对虚拟目录的操作(转)


    一、查看虚拟目录是否存在
    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();
    }

  • 相关阅读:
    Redis21:客户端与服务器端的通信与redis管道
    Redis20:keys、scan、bigkeys、查看key的存储方式
    Redis19:限流
    Redis18:分布式锁
    Redis17:cluster集群
    Redis16:两种redis集群解决方案:codis和cluster
    Android : 获取声卡信息的测试代码
    Android : 基于alsa库的音乐播放
    Android system :灯光系统_HAL_lights
    Android system :led_class驱动
  • 原文地址:https://www.cnblogs.com/xh831213/p/326568.html
Copyright © 2020-2023  润新知