加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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

(2013-08-18 12:21:21)
分类: 待解决
再写程序中遇到了这种错误,“端口接收数据失败System.Runtime.InteropServices.COMException (0x80004005): 对 COM 组件的调用返回了错误 HRESULT E_FAIL。
   在 System.Windows.Forms.UnsafeNativeMethods.ITextRange.ScrollIntoView(Int32 value)
   在 System.Windows.Forms.TextBoxBase.ScrollToCaret()
   在 GL_PLC_Assistant.GLMainForm.WriteToPort(String sendMessage)……”
有人说win7系统,用c#调用Interop.SHDocVw.dll时,报了个对“ COM 组件的调用返回了错误 HRESULT E_FAIL”的错误。网上有人说要开启dtc服务,然后去组件服务里把本地DTC设置成开启网络DTC服务,并允许入站和允许出站,并且设置成不要求进行验证,如下图:
控制面板—>管理工具->组件服务
http://s5/mw690/a3d2fd2dtx6BWMAhPxya4&690COM 组件的调用返回了错误 HRESULT E_FAIL" TITLE="对 COM 组件的调用返回了错误 HRESULT E_FAIL" />

  有时调用com组件时,会返回“HRESULT E_FAIL”错误,这时有可能的错误原因除了代码有错外,另一个原因还可能是我们没有正常配置dcom的属性。如果是后者,我们可以按如下的方法来解决错误:

  1)确保“Distributed Transaction Coordinator”服务是开启的。

  2) 在运行中录入“dcomcnfg",打开组件服务字符串,选择组件服务--->计算机--->我的电脑--->右击属性--->选择MSDTC--->选择安全配置 勾选事务管理器通信中的允许出站、允许入站和不要求进行验证。

改完后,错误似乎没解决,后又重启计算机,改回去,但总觉得会存在安全隐患,这种错误是偶然发生的,不是每次都能捕捉得到,寻求新的解决办法吧!

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有