下面一段代码在IIS6.0下运转正常,但IIS7.0下运转会出错: 
 
System.DirectoryServices.DirectoryEntry iisServer; 
iisServer = new System.DirectoryServices.DirectoryEntry("IIS://localhost/W3SVC/1"); 
System.DirectoryServices.DirectoryEntry rootFolder = iisServer.Children.Find("Root","IIsWebVirtualDir");//此处抛出异常 
异常内容如下:  
[System.Runtime.InteropServices.COMException] {"Unknown error (0x80005000)"}  
System.Runtime.InteropServices.COMException 
 
Unknown error (0x80005000) 
   at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail) 
   at System.DirectoryServices.DirectoryEntry.Bind() 
   at System.DirectoryServices.DirectoryEntry.get_IsContainer() 
   at System.DirectoryServices.DirectoryEntries.CheckIsContainer() 
   at System.DirectoryServices.DirectoryEntries.Find(String name, String schemaClassName)  
 
二、错误分析 
这段异常代码表明 IIS://localhost/W3SVC/1 的ADSI provider不存在或者无法访问。 
打开IIS管理器你可以看到服务器的localhost(即默认站点)是存在的并正在运行,且主站点ID确实是1。这说明问题是出现在 IIS://localhost的ADSI provider。 
 
三、错误原因 
win7使用的是iis7,而IIS 7默认并没有安装ADSI provider。   
 
四、解决方法  
要解决这个问题就得安装“IIS 元数据库和IIS 6配置兼容性”。(适用于windows7/server 2008等iis7) 
“控制面板”->“程序和功能”->面板左侧“打开或关闭windows功能”->“Internet信息服务”->“Web管理工具”->“IIS 6管理兼容性”->“IIS 元数据库和IIS 6配置兼容性”。 
如下图所示: 
 
 
 
 
 
 
 
 
 
 |   
 
  
 |