1. Mr.xu 博客网首页
  2. 经验/教程

SQL Server 异常 COM 类公司中CLSID 为 {10021F00-E260-11CF-AE68-00AA004A34D5} 的组件时失败,原因是出现以下错误: 80040154

ASP.NET利用SQLDMO可以实现在线备份、还原数据库等各种功能。

由于客户的数据库和WEB服务不再同一台服务器,把网站部署在服务器上以后,运行程序,提示如下错误

QQ截图20151105170018.jpg

[Error]

COM 类工厂中CLSID 为 {10021F00-E260-11CF-AE68-00AA004A34D5} 的组件失败,原因是出现以下错误: 80040154


[Solution]

Retrieving the COM class factory for component with CLSID {10020200-E260-11CF-AE68-00AA004A34D5} failed due to the following error: 80040154

而客户又不想在这台电脑安装MSSQL,所以我们只需要在没有安装MSSQL的电脑上注册SQLDMO.DLL组件

Windows Server 2008 解决办法
第一步:下载下面的附件,首先将 msvcr71.dll,SQLDMO.DLL,Resources/2052/sqldmo.rll,Resources/1033/sqldmo.rll 拷贝到C:/Program Files/Microsoft SQL Server/80/Tools/Binn目录(这里为默认安装目录,如果用户选择其他目录请更改盘符、地址)。

下载方式:

下载SQLDMO文件(来自第三方)

百度云链接: http://pan.baidu.com/s/1hqk60Na 密码: 4i6j 

第二步:打开开始,在运行中输入 regsvr32 “C:\Program Files\Microsoft SQL Server\80\Tools\Binn\sqldmo.dll” 注册sqldmo.dll。


Windows Server 2012 解决办法 这里因系统版本使之权限较高,但不要紧,笔者有方法支招你,如下

第一步:下载上面连接中的附件,将 msvcr71.dll,SQLDMO.DLL,Resources/2052/sqldmo.rll,Resources/1033/sqldmo.rll 拷贝到C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\ 目录(这里为默认安装目录,如果用户选择其他目录请更改盘符、地址)。


第二步:打开开始,在运行中输入 regsvr32 “C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\sqldmo.dll” 注册 sqldmo.dll,因在Win2008系统下是80目录,Win2012得更换至100目录,因权值较高,很多地方是调用这里的权限,跟系统位数也有关联。


正常情况下,经过以上两种方案的两个步骤后,网页和网页调用SQL功能就应该可以访问了。

但是我们经过以上两次操作后,访问网页依然提示如下错误:

Retrieving the COM class factory for component with CLSID {10020200-E260-11CF-AE68-00AA004A34D5} failed due to the following error: 80070005.


后经过一段时间的检查,我们发现C:/Program Files/文件夹仅有Administrator和System的控制权限,而没有其他任何用户的权限,因此我们为Microsoft SQL Server文件夹增加上Network Service 的读取权限。



至此,问题得到解决!

原创文章,作者:Admin,如若转载,请注明出处:http://www.xuxiaokun.com/181.html,由 Mr.xu 博客网 整理。

联系我们

笔者经验与你共勉

有问必答:点击这里给我发消息

商务洽谈:点击这里给我发消息

沟通时间:9:00 - 18:00

周一至周五,其余时间留言必应。

QR code