解决:对COM 组件的调用返回了错误 HRESULT E_FAIL

第一部分

调用SHDOCVW(web浏览器) COM组件的时候,返回了错误 HRESULT E_FAIL。总结如下:

1. 在控制面板--->管理工具--->服务 中,开启Distributed Transaction Coordinator 服务。
2. 打开控制面板--->管理工具--->组件服务--->选择计算机--->我的电脑--->右击属性--->选择MSDTC--->选择安全配置 勾选事务管理器通信中的允许出站、允许入站和不要求进行验证。
如下图所示:

重启IIS

通过以上操作,可以解决错误 HRESULT E_FAIL的问题。

以上使用XP,2000,2003

 

第二部分

以下是2008中的操作(大致相同,这是我自己写的,转载请说明出处)

1. 开始--->管理工具--->服务 中,开启Distributed Transaction Coordinator 服务。

2. 开始--->管理工具--->本地安全策略--->高级安全windows防火墙--->高级安全windows防火墙-本地组策略对象--->右击属性--->进行允许出站、允许入站,添加出入站规则。
以上主要运用于编程实现创建域用户,对NTFS文件夹进行权限配置。当然也可以手工完成,既然做软件这行,那就用编程实现不是更好,而且比较适用,小弟正在学习中也实现了点,有兴趣的朋友一起交流。

 

 

 

按我的理解,这种情况一般是因为关机或注销时,有程序或服务无法正常关闭,而其本身运行的权限高于现在所使用的账户(system账户和com+组件)

开始-运行-services.msc,查看已启动项目,停止描述为空的项目,个别杀毒软件也无描述,可以通过查看文件路径来确定.
开始-运行-msconfig,转到启动项目,全部禁用,保留ctfmon和杀毒软件.

推荐使用360安全卫士修复系统。 故障、速度、木马、系统漏洞、病毒等综合性影响,常规解决办法:
1、解决杂乱文件影响(减少电脑负担)。
清理杂乱文件有三个方法,第一是点网页上的“工具”,点“Internet选项(0)”,在新页面分别点“删除Cookies(I)”“删除文件(F)”“清除历史记录(H)”、最后“确定”;第二是用“磁盘清理”,把鼠标指向程序——附件——系统工具——就显示出“磁盘清理”,所有的盘C、D、E等都要清理(主要是系统盘C),第三是“整理磁盘碎片”,把鼠标指向程序——附件——系统工具——就显示出“整理磁盘碎片程序”,主要是整理系统盘C,很慢一般要一到两个小时甚至更多时间。这三种方法可以单独使用,都可以有效的清除正常浏览网页没有保存的所有临时文件,有用的系统文件和安装保存的文件不会被清理。用第一或第二的方法配合第三的方法效果会更好,可以明显改善电脑速度。
2、解决恶意流氓软件和恶意流氓插件影响。
恶意流氓软件和恶意流氓插件除少数是躲在自己下载的软件和安装的代码里面以外,主要是自己强行安装进电脑的,目的就是干扰操作系统,影响程序正常工作,用“磁盘清理”清不掉,杀毒软件发现不了,用瑞星卡卡助手、奇虎360、清理大师、木马清道夫等等凡杀毒软件配置的助手,都可以用系统优化功能、系统防护功能等有效的清除恶意流氓软件、恶意流氓插件和木马,只要经常清理,就可以保证电脑不受影响。
3、系统修复,恶意流氓软件、恶意流氓插件、病毒等有机可乘的原因就是操作系统有漏洞,经常检查漏洞,及时修复系统不但可以使操作系统流畅,而且可以减少恶意流氓软件、恶意流氓插件、病毒等进入电脑的机会。
4、经常更新病毒库,升级杀毒,不要让病毒长期存留在电脑里,选择高级设置,发现病毒杀毒,杀不了隔离文件、隔离不了删除 文件、要保证电脑没有保存有病毒,有病毒及时根除。
5、电脑遭遇病毒是难免的,为了减少重装系统的麻烦,一定要在装系统时装“一键恢复” 。“一键恢复”就是操作系统备份,一般是装系统时设置,也就是确保操作系统健康。 在电脑遭遇病毒无法清除、程序错乱,速度特别慢等严重问题时,任何时候“一键恢复”,电脑就恢复到健康正常的系统,保证正常操作。

 

 

 

 

 

【问题提出】

      今天打开"管理工具"->"组件服务"->"计算机",对话框一直处于假死现象,“组件服务”窗口关闭不掉,其它程序运行正常,只能用任务管理器来结束进程。

 


【解决方案】

      去google了一下,给出解决方案:

 

    可以用任务管理器结束dllhost.exe进程,再打开“组件服务”,就解决了。

    有的时候还需要用到”组件服务“的 ”我的电脑“中的”属性“,但是有的时候”我的电脑“显示是红色的标志,无法点开”属性“,这是由于”服务“里的 MSDTC出现问题导致的。
解决办法:
   运行->cmd
在窗口内按顺序写下:msdtc -uninstall
                    msdtc -install
                    net start msdtc

 

你可能感兴趣的:(HRESULT)