【问题标题】:C# Call custom COM+ error: 80070005 Access is deniedC# 调用自定义 COM+ 错误:80070005 访问被拒绝
【发布时间】:2018-07-18 07:19:25
【问题描述】:

System.UnauthorizedAccessException:'检索具有 CLSID 的组件的 COM 类工厂失败,原因是以下错误:80070005 访问被拒绝。 (来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))。'

代码正在调用一个调用自定义 dcom 应用程序的 Web 方法。 Web 服务已设置为在 IIS 上以 32 位运行。

DCom CLSID 确实存在,我已检查权限。

【问题讨论】:

  • 你可以试试dcomcnfg.msc,看看这是否真的只是给定组件的访问权限问题。但是,最有可能的是,该组件需要“管理员”权限,您可以先尝试一下。除此之外,还有数以百万计的事情可能发生。
  • 在COM组件方面,他们喜欢与众不同。如果不是,您只需将错误代码粘贴到谷歌即可找到答案。它失败了对吗?你可能有大量的点击,但都没有真正的帮助。那是因为 8007005 是非常通用的错误。如果没有详细信息,例如那是什么组件,您如何尝试访问它,您拥有的 win-OS 和 COM 版本,dcomcnfg 中设置的帐户和访问权限等,很难猜测。一般来说,当您询问“为什么我的代码会抛出/崩溃/等等”时,最好展示这段代码,或者至少提供尽可能多的细节!
  • 我得到了很多结果,没有任何帮助。错误就是我得到的全部。该代码正在调用一个调用自定义 dcom 应用程序的 Web 方法。

标签: c# com+ dcom


【解决方案1】:

卸载并重新安装自定义 Dcom 应用程序解决了我的问题。

【讨论】:

  • 感谢您在解决问题后留下跟进。如果重新安装有帮助,那么很可能真的是组件的权限被破坏了 - 即它是由用户 A 为自己安装的,而您试图从用户 B 的帐户中使用它。 dcomcnfg.msc 可以帮助您解决该问题而无需重新安装,但可能重新安装更快/更容易。
猜你喜欢
  • 2011-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-24
  • 2011-05-21
  • 1970-01-01
  • 2013-05-09
  • 2017-09-05
相关资源
最近更新 更多