2011-09-16 23 views
0

Windowsアプリケーションを作成しました。私の質問は次のとおりです。IIS 6.0の仮想ディレクトリを以下のコードで一覧表示しています。選択されている仮想ディレクトリのpyhsicalパス。 また、DirectoryEntryクラスにはpropertiesというプロパティがあります。しかし、私はそれを使用することはできません。最後に、私は次のエラーを取得しています。IIS 6.0の仮想ディレクトリを一覧表示する - C#

The directory cannot report the number of properties 

コード:

try 

    { 

    string serverName = "localhost"; 

    string VirDirSchemaName = "IIsWebVirtualDir"; 

    iisServer = new DirectoryEntry("IIS://" + serverName + "/W3SVC/1"); 

    DirectoryEntry folderRoot = iisServer.Children.Find("Root",VirDirSchemaName); 

    return folderRoot.Children; 

    } 

    catch (Exception e) 

    { 

    throw new Exception("Error while retrieving virtual directories.",e); 

    } 

答えて

1

は、なぜあなたは使用しないWMI

using System.DirectoryServices; 

    private DirectoryEntry _iisServer = null; 
    private DirectoryEntry iisServer 
    { 
     get 
     { 
      if (_iisServer == null) 
      { 
       string path = string.Format("IIS://{0}/W3SVC/1", serverName); 
       _iisServer = new DirectoryEntry(path); 
      } 
      return _iisServer; 
     } 
    } 

    private IDictionary<string, DirectoryEntry> _virtualDirectories = null; 
    private IDictionary<string, DirectoryEntry> virtualDirectories 
    { 
     get 
     { 
      if (_virtualDirectories == null) 
      { 
       _virtualDirectories = new Dictionary<string, DirectoryEntry>(); 

       DirectoryEntry folderRoot = iisServer.Children.Find("Root", VirDirSchemaName); 
       foreach (DirectoryEntry virtualDirectory in folderRoot.Children) 
       { 
        _virtualDirectories.Add(virtualDirectory.Name, virtualDirectory); 
       } 
      } 
      return _virtualDirectories; 
     } 
    } 

List all virtual directories in IIS 5,6 and 7

関連する問題