具体的地说说一个web安装包用户指定了虚拟目录名称,我要在安装类里得到这个虚拟目录的物理路径

解决方案 »

  1.   

    public static string GetWebVirtualDirPath(string virtualDirectory)
    {
    try
    {
    string iisServer = GetIISServerName();
    string rootPath = "IIS://" + iisServer + "/W3SVC/1/Root";
    DirectoryEntry deRoot = new DirectoryEntry(rootPath);
    DirectoryEntries entries = deRoot.Children;
    DirectoryEntry descDir; descDir = entries.Find(virtualDirectory,deRoot.SchemaClassName); if(descDir!=null)
    return descDir.Properties["Path"][0].ToString();
    else
    return "";
    }
    catch
    {
    return "";
    }
    }
      

  2.   

    使用上面的代码还需要using System.DirectoryServices;
      

  3.   

    string iisServer = GetIISServerName();
    string rootPath = "IIS://" + iisServer + "/W3SVC/1/Root";
    这两行代码你可以改写为string rootPath = "IIS://localhost/W3SVC/1/Root";
      

  4.   

    代码如下:
    public string GetWebVirtualDirPath(string virtualDirectory)
    {
    string path="";
    try
    {
    string rootPath = "IIS://localhost/W3SVC/1/Root";
    DirectoryEntry deRoot = new DirectoryEntry(rootPath);
    DirectoryEntries entries = deRoot.Children;
    DirectoryEntry descDir;
    descDir = entries.Find(virtualDirectory,deRoot.SchemaClassName);
    MessageBox.Show(virtualDirectory);
    //if(descDir!=null)
    // path=descDir.Properties["Path"][0].ToString();
    }
    catch(Exception e)
    {
    MessageBox.Show(e.Message);
    }
    return path;
    }调用如下:
    string temp=GetWebVirtualDirPath("eoffice");