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

  • 相关阅读:
    mormot2封装tcp
    mormot.net.client.pas
    mormot.net.server.pas
    delphi working with big data databases in Cassandra, Couchbase and MongoDB
    Grijjy.ProtocolBuffers.pas
    Grijjy.Bson.Serialization.pas
    GrijjyFoundation开源框架
    Unidac内存表使用
    传统关系型数据库正在完成华丽的蜕变
    使用arthas 分析java 应用的一个流程总结
  • 原文地址:https://www.cnblogs.com/xh831213/p/326568.html
Copyright © 2011-2022 走看看