我正在创建一个使用office 2007/2010自动化的简单asp.net网站。。当我在本地机器(窗口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配置中设置一些office权限。
我已经打开了组件服务和DCOM配置,但我没有找到Microsoft Word文档,我只找到了office Word 97-2003。
有谁能告诉我如何解决这个问题吗。
在这里找到答案:Office Automation 的DCOM故障
如果您运行的是带有32位Office的64位服务器,则可能无法找到此DCOM设置。您需要从命令提示符运行"MMC-32"来启动32位MMC,然后从"文件>添加/删除管理单元"菜单添加"组件服务"。
是的,office word 97-2003是DCOM文档(相应的应用程序)word 2007或2010的正确名称。不要问我为什么。。。
哪里会有麻烦?
用户必须有权访问桌面。如果Word是从ASP。NET,它可能没有这种访问权限。因此,请在dcomcnfg.exe中专门设置一个帐户。不要使用启动用户(它是IIS标识,没有自己的桌面),也不要使用交互式用户(只有在某些用户登录时才有效)。
在我的解决方案中,我设置了:
- 我创建了一个新用户(在用户组中),名为WordUser
- 我在IIS中创建了一个具有WordUser权限的新应用程序池加载用户配置文件必须为true
- DCOM:我已经设置为使用WordUser,在安全选项卡上,我添加了具有启动和激活权限和访问权限的WordUser_
另一种方式是可能的,但这种方式应该有效。