安装Microsoft SQL Server 2005出现COM+出错问题及解决

今天下了SQL SERVER 2005,装上研究一下

安装过程不是非常的顺利,主要是COM+出错,还有点其他的小问题。

下面一一列举,以便以后用的着。、

1.。。。开始是提醒“owc11安装失败,请查看C:/Program Files/Microsoft Office/OFFICE11/2052/setup.chm找到帮助。”。上网一查是Microsoft Office Web Components2003 没有安装,于是上网下了个,安装上,再重新安装sql程序,还是有问题,后来发现在安装盘中的setup文件中的owc11文件和C:/Program Files/Microsoft Office/OFFICE11/1033中的很完全相似,于是把其中的全部复制到2052中,再安装没有出现刚才问题了。

    但接下来又有了问题,就是”com+目录不对“

提示:

安装过程详细错误记录如下:

标题: Microsoft SQL Server 2005 安装程序

------------------------------

无法在 COM+ 目录中安装和配置程序集 C:/Program Files/Microsoft SQL Server/90

DTS/Tasks/Microsoft.SqlServer.MSMQTask.dll。错误: -2146233087

错误消息: Unknown error 0x80131501

错误说明: 要执行此任务,您必须具有管理凭据。请与您的系统管理员联系以获得帮助。

2,。。。于是网上找了一大把资料,都是那样的理想。。都说要我进———运行“dcomcnfg”,打开系统组件服务。展开控制台根目录->组件服务->计算机->我的电脑->COM+应用程序节点,没有发现Microsoft.SqlServer.MSMQTask节点  但是就是我打不开“COM+应用程序节点”

 解决方法是:

1、首先进入组件服务,查看组件服务/计算机/我的电脑/COM+应用程序,结果报错"COM+ 无法与 Microsoft 分布式事务协调程序交谈",无法查看里面的对象。 

               2、进入事件查看器,发现msdtc服务没有正常启动。 

               3、删除注册表中的键: 

                        ? HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/MSDTC 

                        ? HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSDTC 

                        ? HKEY_CLASSES_ROOT/CID 

               4、停止MSDTC服务:net stop msdtc 

               5、卸载MSDTC服务:msdtc -uninstall 

               6、重新安装MSDTC服务:msdtc -install

       还有:

            确认在事件查看器中msdtc服务已经正常启动[这步很关键

            IIS出现HTTP500内部错误以及COM+8004e00f错误的解决办法(MSDTC) 

               主要都是IWAM账号在ActiveDirectory、IIS metabase数据库和COM+应用程序三处的密码无法同步,解决方法也很简单,大致有一下三个步骤:

          1 、重新设置IIS的IWAM账号密码。[在计算机管理中的用户管理里] 

           2、同步IIS metabase中IWAM_MYSERVER的密码,在CMD中:c:/inetpub/adminscripts>adsutil set w3sv

           c/wamuserpass "yourpassword" 

          3、同步COM+应用程序所用的IWAM_MYSERVER密码,在CMD中:c:/inetpub/adminscripts>cscript synci

             wam.vbs -v,但是在进行第三步操作时总是报8004e00f错误。

其实"COM+ 无法与 Microsoft 分布式事务协调程序交谈"在安装了Windows组件中的消息队列后,就不会出现这个错误了,同时"消息队列"组件又对服务中的"Distributed Transaction Coordinator"(即msdtc服务)有依存关系,这个服务必须启用,才可以安装消息队列组件!消息队列装好后,上图中的COM+应用程序菜单就可以打开了,表示其已正常工作!如果在这个时候再装IIS或者把IIS卸载重装,就不需要上面的手动密码同步问题了!就是说按这个步骤安装好IIS,就已经正常了!实际上,手工同步密码

接下来就按照他们给的指点做咯。。。。。

接下去笔者把安装过程中出现的错误发送给微软,请SQL Server 组的技术支持工程师帮助解决。在工程师查找问题过程中,虽然许多检查点我都做过,不过他查找分析解决问题的思路清晰,以下我列了大概几个步骤。

一.MSDTC运行帐户问题

确认MSDTC (Microsoft Distributed Transaction Coordinator)服务正在运行,并且其启动帐户是NT AUTHORITY/Network Service”。按照以下步骤来检查:

1. 点击“开始”->“运行”->services.msc

2. 在服务列表中找到Distributed Transaction Coordinator,双击以编辑其属性

3. 在属性窗口切换至登录选项卡,确认其启动帐号为”NT AUTHORITY/Network Service”(密码为空即可)

4. 启动DTC服务再尝试安装SQL Server 2005

结果:这个步骤我已经尝试过,不是这个问题。

二.分析SQL Server 2005安装日志

将C:/Program Files/Microsoft SQL Server/90/Setup Bootstrap/LOG/目录下所有的文件(包括Summary.txt和Files子目录下的所有文件)发送给微软技术支持工程师进行分析。

结果:这个步骤我没有做过,不过微软工程师好像也没有发现线索。

三.COPY安装程序到硬盘安装尝试

建立 D:/SQLServer2005 文件夹, 创建以下两个子文件夹:Servers和Tools。Serviers文件夹拷贝SQL Server2005的第一张安装盘,包含所有要安装主 SQL Server 2005 组件。 Tools文件夹拷贝SQL Server 2005的第二张盘,包含为 SQL Server 2005 联机丛书和工具组件。运行D:/SQLServer2005/Servers 文件夹下的Setup.exe,启动 SQL Server 2005 安装程序。

结果:以上方式安装过程中还是碰到同样的问题。

四.重新安装 COM+应用程序

1.从控制面板的“添加或删除程序”中,单击“添加/删除 Windows 组件”。

2.在“Windows 组件向导”中,不对选择做任何更改,单击“下一步”。一直单击以完成向导,然后再次运行 SQL Server 2005 安装程序。

结果:问题没有解决。

通过以上分析微软的工程师总结如下: 目前还不确定引起这个错误的原因,并且在安装日志中也没有找到更多的有用信息。可能引起此类错误的原因有以下几种:

1. COM+的配置问题。

2. 帐号权限问题。

3.有一些安装失败的Microsoft.SqlServer.MSMQTask.dll情况出现在测试版中,或者是由于未完全删除的测试版组件而导致安装失败。

4. 除此之外还有一些类似的问题都是与64位操作系统或者Cluster环境有关。

我认为以上的一些原因可以排除,看来又是Live Meeting的时候了,和微软工程师约定时间联机查找问题。

五.手工注册Microsoft.SqlServer.MSMQTask.dll

使用regsvcs.exe应用程序工具注册.NET服务 使用cmd执行过程如下:

C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727>regsvcs.exe "C:/Program Files/Micr osoft SQL Server/90/DTS/Tasks/Microsoft.SqlServer.MSMQTask.dll" Microsoft(R) .NET Framework 服务安装实用工具版本 2.0.50727.42 Copyright (c) Microsoft Corporation. All rights reserved.

出现下列安装错误:

1: 要执行此任务,您必须具有管理凭据。请与您的系统管理员联系以获得帮助。

2: 注册程序集“Microsoft.SqlServer.MSMQTask, Version=9.0.242.0, Culture=neutral,PublicKeyToken=89845dcd8080cc91”失败。

3: 对注册表项“HKEY_CLASSES_ROOT/Microsoft.SqlServer.Dts.Tasks.MessageQueueTask. DataFileMessage”的访问被拒绝。

分析:这看起来是由于当前Windows用户在该注册表键值上没有足够的权限造成的。经过研究类似案例,在某些情况下,即使是Administrators组的用户也可能出现对这些键值没有Full Control的情况。需要确认一下在这些注册表值上,Administrators组用户是否有Full Control。在注册表中右键点击注册表值->选择权限来查看及改变该值上的权限设置。如果权限设置都正确的话,可以试着抓一个RegMon trace来看到底是不是注册表键值的权限问题导致这个错误。

看来问题终于找到了。

六.监控注册表

1. 运行RegMon工具,通过菜单Options->Filter中设置Include list,把Regsvcs.exe加入Include list中。

2. 执行regsvcs.exe "C:/Program Files/Microsoft SQL Server/90/DTS/Tasks/Microsoft.SqlServer.MSMQTask.dll"

3. 在Regsvcs.exe执行失败停止后,保存RegMon生成的log。

分析RegMon Trace。定位问题如下: 5484       17.98829079       RegSvcs.exe:3404            OpenKey                HKCR/Microsoft.SqlServer.Dts.Tasks.MessageQueueTask.MessageQueueTask ACCESS DENIED                NBCN-ZZ/Administrator             5488       17.98927116       RegSvcs.exe:3404            CreateKey                HKCR/Microsoft.SqlServer.Dts.Tasks.MessageQueueTask.MessageQueueTask ACCESS DENIED                NBCN-ZZ/Administrator             5489       17.98955727       RegSvcs.exe:3404            CreateKey                HKCR/Microsoft.SqlServer.Dts.Tasks.MessageQueueTask.MessageQueueTask ACCESS DENIED                NBCN-ZZ/Administrator             6431       19.89454460       RegSvcs.exe:3404            OpenKey                HKCR/Microsoft.SqlServer.Dts.Tasks.MessageQueueTask.MessageQueueTask ACCESS DENIED                NBCN-ZZ/Administrator            

以上其实就是我一开始使用RegMon 时应该发现的问题,结果到现在才发现。

从这几条记录来看,问题是对注册表值

KCR/Microsoft.SqlServer.Dts.Tasks.MessageQueueTask.MessageQueueTask的权限问题。而RegSvcs进程在遇到这些权限问题之后,并没有马上终止,还有一些别的注册表活动。我查看了注册表HKEY_CLASSES_ROOT/Microsoft.SqlServer.Dts.Tasks.MessageQueueTask. DataFileMessage项的权限,Administrators组没有“完全控制”和“读取”权限,对其进行授权。重新运行注册,结果又报另外的注册表项没有权限,对其进行添加,直到注册成功,以下是输出结果。 C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727>regsvcs.exe "C:/Program Files/Micr osoft SQL Server/90/DTS/Tasks/Microsoft.SqlServer.MSMQTask.dll" Microsoft(R) .NET Framework 服务安装实用工具版本 2.0.50727.42 Copyright (c) Microsoft Corporation. All rights reserved. 正在自动将“Microsoft.SqlServer.ManagedDTS, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91”导出为“C:/WINDOWS/assembly/GAC_MSIL/Microsoft. SqlServer.ManagedDTS/9.0.242.0__89845dcd8080cc91/Microsoft.SqlServer.ManagedDTS. tlb”。 警告: 程序集未声明 ApplicationAccessControl 属性。默认情况下启用应用程序安全性。 已安装的程序集:         程序集: C:/Program Files/Microsoft SQL Server/90/DTS/Tasks/Microsoft.Sql Server.MSMQTask.dll         应用程序: Microsoft.SqlServer.MSMQTask         TypeLib: C:/Program Files/Microsoft SQL Server/90/DTS/Tasks/Microsoft.Sq lServer.MSMQTask.tlb C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727> 修改授权的相关注册表项如下: HKEY_CLASSES_ROOT/Microsoft.SqlServer.Dts.Tasks.MessageQueueTask.MessageQueueTask HKEY_CLASSES_ROOT/Microsoft.SqlServer.Dts.Tasks.MessageQueueTask.EncryptionAlgorithmWrapper HKEY_CLASSES_ROOT/Microsoft.SqlServer.Dts.Tasks.MessageQueueTask.ServCompMQTask HKEY_CLASSES_ROOT/Microsoft.SqlServer.Dts.Tasks.MessageQueueTask.Formatter 再次运行“dcomcnfg”,打开系统组件服务。展开控制台根目录->组件服务->计算机->我的电脑->COM+应用程序节点,发现Microsoft.SqlServer.MSMQTask节点,可见该COM+服务已经安装上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值