DirectoryEntry配置IIS7出现ADSI Error:未知错误(0x80005000)

一、错误情况

环境:win7+iis7.0

DirectoryEntry配置IIS7出现如下错误

或者是

下面一段代码在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配置兼容性”。

“控制面板”->“程序和功能”->面板左侧“打开或关闭windows功能”->“Internet信息服务”->“Web管理工具”->“IIS 6管理兼容性”->“IIS 元数据库和IIS 6配置兼容性”。

如下图所示:

五、更好的解决方法

更理想的解决方式是用 WMI provider操作IIS 7 ,可参见此篇文章http://msdn.microsoft.com/en-us/library/aa347459.aspx

六、Windows Server 2008出现这种错误怎么办?

在Windows Server 2008下,使用角色服务安装完“IIS 元数据库和IIS 6配置兼容性”,还有可能出现如下错误:

[System.Runtime.InteropServices.COMException] {"Access is denied.\r\n"} System.Runtime.InteropServices.COMException
ErrorCode 0x80070005

Access is denied.

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)

这是因为 Windows Server 2008被UAC(User Account Control,用户账户控制)锁定了.  你需要用管理员(Administrator)账户执行这个程序. 另一种方式是设置运行此程序的账户拥有如下权限: Logon as a Service"/ "Logon as a Batch Job"

时间: 2024-10-27 17:08:08

DirectoryEntry配置IIS7出现ADSI Error:未知错误(0x80005000)的相关文章

[转载]DirectoryEntry配置IIS7出现ADSI Error:未知错误(0x80005000)

一.错误情况 环境:win7+iis7.0 DirectoryEntry配置IIS7出现如下错误 或者是 下面一段代码在IIS6.0下运转正常,但IIS7.0下运转会出错: System.DirectoryServices.DirectoryEntry iisServer;iisServer = new System.DirectoryServices.DirectoryEntry("IIS://localhost/W3SVC/1");System.DirectoryServices.

IIS7 和IIS8.0 HTTP 错误 500.19 - Internal Server Error 问题的解决方案

百度了好久,没找到解决问题确切的答案,我也知道肯定是权限的问题,当然,经过一番尝试之后,终于解决了,解决之道如下(个人方法,可以一试): 1.找到你的配置文件所在的文件夹,我的是 E:\源码\ASP.NET\DtCms10Beta2 2.右键,点击属性,切换到"安全"选项卡上,将 IIS-IUSRS 用户组添加到安全列表中,并按需求赋予其权限(我赋予了修改的权限),更改后如下图: 3.查看 web.config 的安全权限,如果有此用户组的权限则说明成功,否则进行下一步: 4.退回到根

遇到IIS7配置PHP出现403和404错误的解决办法

服务器要配置PHP,总是出现403错误.服务器是新装的,操作系统是windows server 2008 R2,装的IIS7. IIS里PHP和本地服务器对比了好几遍,都没到出错的原因,后来通过cmd里运行php -v,发现了问题所在,原来是没装vc_redist_x64_2012.exe引用的. 装过以后,先建了一个应用程序站点,PHP运行正常,但站点根目录下的PHP程序,就是跑不起来,提示404.17错误. 站点根目录的PHP环境也是按它下面的应用程序方法配置的,很是想不通,修改应用程序池也

IIS7 和IIS8.0 HTTP 错误 500.19 - Internal Server Error 问题的解决方式

百度了好久,没找到解决这个问题确切的答案,我也知道肯定是权限的问题,当然,经过一番尝试之后,最终攻克了,解决之道例如以下(个人方法,能够一试): 1.找到你的配置文件所在的目录,我的是 E:\源代码\ASP.NET\DtCms10Beta2 2.右键,点击属性,切换到"安全"选项卡上,将 IIS-IUSRS 用户组加入到安全列表中,并按需求赋予其权限(我赋予了改动的权限),更改后例如以下图: 3.查看 web.config 的安全权限,假设有此用户组的权限则说明成功,否则进行下一步:

突然出现错误gdiplustypes.h(280): error C2059: syntax error : 'constant'等未知错误

gdiplustypes.h(280): error C2059: syntax error : 'constant'gdiplustypes.h(280): error C2238: unexpected token(s) preceding ';'gdiplustypes.h(281): error C2059: syntax error : 'constant'gdiplustypes.h(281): error C2238: unexpected token(s) preceding '

VMware vCenter Server Appliance Error: VPXD错误

最近发现有的时候在配置VCenter(OVF)的时候,有的时候会出现 Erro:VPXD must be stopped to perform this operation 这个错误,提示就是让我关掉这个VPXD服务. 这种错误以前偶尔出现,但是新版本中不知道为什么经常出现,后来发现如果想去掉这个错误就必须关掉这个服务,你的VCenter才能生效. 解决办法只有先关掉VCenter的所有服务. 然后进入的VCenter服务界面后才能关闭VPXD这个服务. 首先要登陆到Linux界面然后输入用户名

Socket程序中的Error#10054错误

近期使用winSock做的一个网络项目中,使用TCP+Socket连接编写的一个多线程的网络程序,功能是client负责不断地向server端发送数据,服务端负责接收数据.client是一个DLL,服务端程序是一个随机启动的NT Service服务程序. 程序在夜间无人操作的执行过程中,client常常不定时地出现错误号为:10054的错误,而server端并没有对应的提示.执行环境是win2000+sp4,这个问题出现得比較莫名其妙. 查了MSDN上的10054错误号说明:WSAECONNRE

XCODE 出现 The operation couldn't be completed.(LaunchServicesError error 0.)错误修复

今天在利用XCode开发苹果APP时想使用脚本来存储一些语言文字信息,在完成环境配置和搭建以后调用Lua脚本成功.但是该Lua脚本把所有的内容都包含在一起,不太符合文件独立的要求,就把文件拆成了两部分,通过include之类的Lua关键字进行关联.调整完毕以后运行调试,出现了Lua引擎无法搜索到被包含的脚本的错误,于是就开始折腾了,一会用相对包含关系包含文件,一会又用文件引用方式使用文件,最终问题没有得到解决但是出了一个新问题对比了工程版本修改记录也没发现问题原因,求助了万能的百度(吐啊吐啊~~

解决SQL Server管理器无法连接远程数据库Error: 1326错误

解决SQL Server管理器无法连接远程数据库Error: 1326错误 我们在在使用SQL Server时都会遇到使用SQL Server Management Studio无法连接远程数据库实例的问题,错误描述信息摘录如下: An error has occurred while establishing a connection to the server. (provider: Named Pipes Provider, error: 40 – Could not open a con