SQL Server 2005安装失败的处理方法

本文详细记录了在安装SQL Server 2005时遇到的'错误: -2146233087'问题,涉及MSDTC服务、安装日志分析、COM+应用程序重新安装、手动注册DLL及使用RegMon监控注册表等排查步骤,最终发现并解决了注册表权限问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在安装SQL Server 2005开发版时出现问题。安装环境为windows xp sp3,安装用户使用超级管理员(Administrator)。出现的错误是

在安装“Integration Services”步骤时出现安装错误,提示“错误: -2146233087”。

错误记录

标题: Microsoft SQL Server 2005 安装程序

无法在 COM+ 目录中安装和配置程序集 C:“Program Files“Microsoft SQL Server“90“DTS“Tasks“Microsoft.SqlServer.MSMQTask.dll。错误: -2146233087

错 误消息: Unknown error 0x80131501

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

 

解决办法:

 

一.MSDTC运行帐户问题

确认MSDTC 服务正在运行,并且其启动帐户是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“目录下所有的文件发送给微软技术支持工程师进行分析。

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

三.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.50727regsvcs.exe "C:“Program Files“Micr

osoft SQL Server“90“DTS“Tasks“Microsoft.SqlServer.MSMQTask.dll"

Microsoft .NET Framework 服务安装实用工具版本 2.0.50727.42

CopyrightMicrosoft 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 时应该发现的问题,结果到现在才发现。

从这几条记录来看,问题是对注册表值 HKCR“Microsoft.SqlServer.Dts.Tasks.MessageQueueTask.MessageQueueTask的权限问 题。而RegSvcs进程在遇到这些权限问题之后,并没有马上终止,还有一些别的注册表活动。我查看了注册表 HKEY_CLASSES_ROOT“Microsoft.SqlServer.Dts.Tasks.MessageQueueTask.

DataFileMessage 项的权限,Administrators组没有“完全控制”和“读取”权限,对其进行授权。重新运行注册,结果又报另外的注册表项没有权限,对其进行添 加,直到注册成功,以下是输出结果。

C:“WINDOWS“Microsoft.NET“Framework“v2.0.50727regsvcs.exe "C:“Program Files“Micr

osoft SQL Server“90“DTS“Tasks“Microsoft.SqlServer.MSMQTask.dll"

Microsoft .NET Framework 服务安装实用工具版本 2.0.50727.42

CopyrightMicrosoft 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+服务已经安装成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值