我正在尝试以编程方式编辑Word文档。但是,当我调试并首先尝试创建Word.Application时,我得到了
检索具有CLSID {000209FF-0000-0000-C000-000000000046}的组件的COM类工厂因以下错误而失败:80080005服务器执行失败(HRESULT异常:0x80080005(CO_E_SERVER_EXEC_FAILURE))。
我看到Word.Interop不再受支持,所以我开始使用NetOffice,但没有任何改变,所以也许我没有改变底层功能。
我尝试过很多DCOM配置,并以管理员身份运行我的Visual Studio实例,但没有任何变化。目前身份验证级别为无,我指定“此用户”并使用具有所有安全权限的帐户。我之前也尝试过交互式用户和启动用户。我之前从未遇到过调试器的麻烦,只是在服务器上部署之后,这对我来说很困惑。
我正在运行Windows 8.1(64位)和Office 2013(32位)。我很欣赏任何想法。 NetOffice对这个问题有什么影响吗?谢谢。
答案 0 :(得分:1)
无论如何,Microsoft目前不推荐也不支持任何无人参与的非交互式客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT服务)的Microsoft Office应用程序自动化,因为Office可能在此环境中运行Office时,会出现不稳定的行为和/或死锁。
如果要构建在服务器端上下文中运行的解决方案,则应尝试使用已为安全无人值守执行的组件。或者,您应该尝试找到允许至少部分代码在客户端运行的替代方法。如果从服务器端解决方案使用Office应用程序,则应用程序将缺少许多成功运行的必要功能。此外,您将承担整体解决方案稳定性的风险。请在Considerations for server-side Automation of Office文章中详细了解相关内容。
如果仅处理开放XML文档,请考虑使用Open XML SDK,有关详细信息,请参阅Welcome to the Open XML SDK 2.5 for Office。或者只是尝试使用为服务器端执行而设计的任何第三方组件组件。
P.S。 NetOffice不会帮助您避免此类问题,因为它基于COM自动化技术。