12

我正在创建一个使用 Office 2007/2010 自动化的简单 asp.net 网站。当我在本地机器(window 7)上的 iis 7 上发布网站时出现异常

 Retrieving the COM class factory for component with CLSID 
 {000209FF-0000-0000-C000-000000000046} failed due to the following error: 
 80080005 Server execution failed (Exception from HRESULT: 0x80080005 
 (CO_E_SERVER_EXEC_FAILURE)).

我已经搜索过这个异常,我发现我必须在 DCOM Config 中设置一些办公室权限。

我打开了组件服务并打开了 DCOM Config,但我没有找到 Microsoft Word 文档,我只找到了 office word 97 - 2003。

谁能告诉我如何解决这个问题。

4

2 回答 2

22

在这里找到答案:办公自动化的 DCOM 失败

如果您使用 32 位 Office 运行 64 位服务器,您可能无法找到此 DCOM 设置。您需要从命令提示符运行“MMC -32”以启动 32 位 MMC,然后从“文件 > 添加/删除管理单元”菜单中添加“组件服务”。

于 2012-09-26T01:53:32.777 回答
8

是的,office word 97 - 2003是 DCOM 文档(分别是应用程序)Word 2007 或 2010 的正确名称。不要问我为什么...

麻烦在哪里?

用户必须有权访问桌面。如果从 ASP.NET 调用 Word,它可能没有此访问权限。因此,在dcomcnfg.exe中明确设置一个帐户。不要使用启动用户(它是一个 IIS 身份,它没有自己的桌面)并且不要使用交互式用户(它仅在某些用户登录时才有效)。

在我的解决方案中,我设置了:

  • 我创建了新用户(在用户组中),称为 WordUser
  • 我在 IIS 中创建了具有 WordUser 权限的新应用程序池;加载用户配置文件必须为
  • DCOM 我已设置为使用 WordUser,在安全选项卡上我添加了 WordUser wit Launch and activation PermissionAccess Permission

也许另一种方式是可能的,但这应该可行。

于 2013-05-10T11:19:59.500 回答