win7组件服务COM+应用程序编录错误解决办法

来源:互联网 发布:ug8.0编程免费视频教程 编辑:程序博客网 时间:2024/04/28 18:56

原贴:http://blog.csdn.net/szjyy007/archive/2010/10/29/5974114.aspx

 

有时候在安装某个应用程序的过程中会出现下面的错误提示:无法创建COM应用程序!但是可以在安装程序完成后,使用组件服务控制台创建空的COM应用程序,并为其添加所需要的组件,但是在使用windows自带的组件服务时,点击COM+应用程序,会报编录错误(我在安装Ming-WebReport的时候就遇到了这样的问题,后来经过一系列探索,成功解决,希望分享给有需要的人)。

      一般情况下,我们遇到过的COM+应用程序编录错误共有两个:(1)第一个是打开COM+应用程序时出现“编录错误,执行最后操作发生错误,  错误代码8007042C-依赖服务或组无法启动,事件或日志包含其他错误疑难信息”,

(2)第二个是打开COM+应用程序时出现“错误代码8004E00F -COM+ 无法与 Microsoft 分布式事务协调程序交谈”。这个问题也是IIS常遇到的。

      对于第一个错误,解决办法其实很简单,只需将“服务”中的“System Event Notification Service”服务启动即可,它是一个监视系统事件的COM+     事件系统服务,必须确保启动。但是启动后,再点击或双击COM+应用程序时就可能出现第二个错误,对于第二个错误的解决办法,网上有很多答案,(在已经安装了IIS的情况下)现总结如下:

  (1)删除注册表中的键

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/MSDTC 、

      HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSDTC

      HKEY_CLASSES_ROOT/CID

  (2)在开绐—>运行 中依次输入下列三行命令:

1、停止MSDTC服务:net stop msdtc

2、卸载MSDTC服务:msdtc -uninstall

3、重新安装MSDTC服务:msdtc –install

  (3)启动MSDTC服务:net start msdtc。MSDTC服务即Distributed Transaction Coordinator用来协调跨多个数据库、消息队列、文件系统等资源管理器的事务的服务。确认在事件查看器中msdtc服务已经正常启动(这步很关键,如果没有,重新启动下电脑看看),这里有个技巧,查看MSDTC服务是否启动,执行net stop msdtc,提示正在停止和停止成功就对了,再msdtc - install下就OK. 如果在“COM+应用程序”中,没有“IIS Out-Of-Process Pooled Applications”应用程序,进行如下操作:

开始菜单->运行->cmd打开命令提示窗口 输入cd %windir%/system32/inetsrv切换到system32下inetsrv目录 输入rundll32 wamreg.dll, CreateIISPackage(注意:必须准确键入"CreateIISPackage"它区分大小写),然后输入regsvr32 asptxn.dll 关闭并重新打开"组件服务",问题解决。

    出现此错误的原因有多个,但最主要的原因是IWAM_MACHINE账号在Active Directory(或SAM),IIS的metabase数据库与COM+组件中的密码不匹配不同步造成的。因此解决问题的关键在于使这三方的密码同步起来。密码同步的方法如下:

1.在本地账号管理器中更改IWAM_MACHINE账号的密码.(即启动IIS进程帐号)

2.使用新的密码重设IIS Metabase数据库.(即编辑匿名访问使用的用户帐号)

3.同步COM+应用程序账号密码

(一)更改IWAM_MACHINE账号的密码

1、选择“开始—程序—管理工具—计算机管理—本地用户和组—用户”选中右面的“IWAM_MACHINE”右键选择“设置密码”这里我们设置成test

(二)使用新的密码重设IIS Metabase数据库。(即编辑匿名访问使用的用户帐号)

方法一:在运行中输入CMD:打开DOS命令后输入C:/Inetpub/AdminScripts/adsutil SET w3svc/WAMUserPass "yourpassword"

方法二:选择“默认Web 站点属性—目录安全性标签—编辑—匿名访问和验证控制”在弹出的框中选中“匿名访问”,单击“编辑按钮—用户名浏览”,选择“IWAM_MACHINE”,密码框中输入test,选中“允许IIS控制密码—确定”。如果弹出对话框:“非本地用户帐号不支持密码同步。您真要继续?”确定即可。确定关闭所有对话框。

(三)同步com+应用程序所用的IWAM_MACHINE的密码

使用组件服务mmc管理单元

  (1)启动组件服务管理单元:选择“开始—运行—mmc”,启动管理控制台,打开“添加/删除管理单元”对话框,将“组件服务”管理单元添加上。

  (2)找到“组件服务—计算机—我的电脑—com+应用程序—out-of-process pooled applications”,右击“out-of-process pooled applications—属性”。

  (3)切换到“out-of-process pooled applications”属性对话框的“标识”选项卡。选择“此用户”,浏览,选择用户名“IWAM_MACHINE”。这些都是缺省的。在下面的“密码”和“确认密码”文本框内输入正确的密码“test”,确定退出。 

  (4)系统如果提示“应用程序被一个以上的外部产品创建。你确定要被这些产品支持吗?”时确定即可。  

  (5)如果我们在IIS中将其它一些web的“应用程序保护”设置为“高(独立的)”,那么这个web所使用的com+应用程序的iwam账号密码也需要同步。

以上第二个错误的解决办法是在已经安装好IIS的情况下,不过win7很多情况下IIS都没有安装(我的就是),这时解决这个问题就比较简单了,只需要在启动MSDTC服务后,安装好IIS就可以啦,win7下安装IIS的具体步骤是:依次打开“控制面板—程序—程序和功能”,点击左侧的“打开或关闭windows功能”,根据需要选择Internet信息服务中功能,然后确定即可,问题解决,再点击“com+应用程序”(有的可能需要重启),应该不会出现以上的错误。

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/szjyy007/archive/2010/10/29/5974114.aspx

原创粉丝点击