`
wangangie32
  • 浏览: 37755 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

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

 
阅读更多

  有时候在安装某个应用程序的过程中会出现下面的错误提示:无法创建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/Servic es/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+应用程序"(有的可能需要重启),应该不会出现以上的错误。 
  
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics