由于以下错误,检索 CLSID 为 {00020906-0000-0000-C000-000000000046} 的组件的 COM 类工厂失败:80070005

StackOverflow https://stackoverflow.com/questions/3448503

当我的 Web 服务尝试通过 .net webb 服务以编程方式打开 MS Word 文档时,我收到上述错误。当我通过 Visual Studio 运行 Web 服务时,它工作正常,但是当我在 IIS 7 上部署 Web 服务时,出现错误

通过CLSID {00020906-0000-0000-C000-0000000046}检索组件的COM类工厂,由于以下错误:80070005

我见过类似的问题,并在 Stackoverflow、MSDN 和其他资源上尝试过他们的解决方案,但没有一个对我有用。大多数问题都是 2008/2007 年的旧问题。

我尝试使用 dcomcnfg 命令更改 DCOM 设置,并且添加了“网络服务”、“网络”用户,还在“Microsoft Word 文档”组件属性中添加了我自己的用户 ID,并授予了他们完全权限。我还在 web.config 中添加了 impersonate=true 属性。完成这一切之后我也收到错误。有人可以帮我吗?

我正在 MS vista 32 位操作系统上尝试所有这些,Office 版本是 Office 2003。

有帮助吗?

解决方案

我没有使用 Web 服务,而是使用 Windows 服务,并且当该服务调用尝试创建 Excel 对象的可执行文件时,我生成了相同的错误。我还阅读了许多其他资源,但没有一个对我有用。有几个非常接近,这导致我通过以下方式解决了这个问题:

  1. 我去了服务器...开始..运行并运行“dcomcnfg”。
  2. 导航至组件服务...计算机...我的电脑...DCOM 配置...Microsoft Excel 应用程序。
  3. 打开属性并选择“身份”选项卡。
  4. 选择“启动用户”(而不是“交互式用户”)单选按钮,然后单击“确定”关闭属性对话框。

错误消失,并且应用程序在服务运行时生成 Excel 文件。

我正在调查是否可以通过其他方式从 Windows 服务中获得此功能,因为我不确定此解决方案是否会产生副作用。如果我发现其他问题,我会进一步更新。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top