【问题标题】:Word Automation launched with VS 2008 fails使用 VS 2008 启动的 Word 自动化失败
【发布时间】:2010-10-18 23:57:03
【问题描述】:

我已在服务器 (Win 2003) 上部署了我的 Web 应用程序 (ASP.NET/C#),以便可以合并 Word 文档并打开它们。

一切正常:一个 .doc 文档被添加到另一个 .doc 文档的底部(使用 Microsoft.Office.Interop.Word 库),然后用客户端 MS Word 打开。

不幸的是,周末另一个团队在服务器上完成了自动更新,我还不知道完成了哪种更新(可能是 Office 2003 更新,但它甚至可能是服务器补丁)。

无论如何,我在事件查看器中收到以下警告,并且在使用 Microsoft.Office.Interop.Word 库时应用程序挂起:

检测产品“{90110409-6000-11D3-8CFE-0150048383C9}”, 功能“OfficeUserData”、组件“{4A31E933-6F67-11D2-AAA2-00A0C90F57B0}”失败。
资源 'HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\MS Access Database\' 不存在。

我们甚至不使用 MS Access,而是使用 SQL Server。 我担心的是注册表项已更改,现在系统不再按预期工作。

我将“网络服务”用户设置为具有访问/启动词的权限,它也是用于默认应用程序池的同一用户。我们使用 IIS6、Windows Server 2003 e Word 2003。

可以提出任何解决方案吗? (即使我知道不知道已经完成了哪个更新,也可能很难)。

谢谢

【问题讨论】:

    标签: ms-word


    【解决方案1】:

    不惜一切代价避免在服务器上使用 Office 组件(包括 Office 本身或 PIA):

    微软目前没有 推荐,不支持, 微软办公自动化 从任何无人看管的应用程序, 非交互式客户端应用程序或 组件(包括 ASP、ASP.NET、 DCOM 和 NT 服务),因为 Office 可能表现出不稳定的行为和/或 在此运行 Office 时出现死锁 环境。

    Microsoft KB article

    像许多其他人一样,我经常遇到这个问题,并且没有简单的解决方案。 要么在某处专用一个小型服务器来处理你的 Office 工作(并准备定期重新启动它),要么使用不引用 PIA 的第三方产品。

    很抱歉给你带来坏消息...

    【讨论】:

    • 感谢您的反馈。我也读到过,但无论如何,我们想使用当前的解决方案来解决(因为它在生产服务器上运行)。我们目前没有时间移动组件并重新测试它们,然后再将它们重新投入使用。
    • 我很同情,也知道是怎么回事 >;-)
    【解决方案2】:

    您应该能够在 Windows 更新下查看最近应用了哪些更新。希望您可以回滚它们,直到找到罪魁祸首。

    保罗是对的。在服务器上使用 MSOffice 应用程序部署解决方案可能是一个非常冒险的提议。做好准备,并利用看门狗计时器和代码枚举和杀死错误的 WINWORD.EXE 进程,当您认为它可能已经脱离了深渊时。这不是优雅的东西,但它可以工作。

    至于第 3 方工具,我看过很多。如果您从头开始构建文档,大多数都可以,尽管它们具有不同级别的实现功能。 如果您可以专门使用 DOCX 文件,OpenDoc XML SDK 可以很好地工作并且是免费的。但是实际操作现有文档很糟糕。

    如果您打算将现有文档用作模板,那么您的选择范围会变得更加狭窄。您可以使用 OpenXML SDK 做到这一点,但这非常困难。迎风报告有效,但可以是 $$$。

    出售的大多数“Word 兼容”库并未实现​​您可能需要的所有功能。

    您很可能会发现,使用 Word 对象模型 API 是为您提供所需功能的唯一途径。但是,YMMV 一如既往。

    【讨论】:

    • 最后,我们决定完全避免使用 WORD。由于我们使用 Crytsal Reports 和 VS 2008 来生成报告,我们将尝试对其进行更改,以使生成的文件为 .rdf(而不是 .doc)。我们的目标是彻底摆脱 Word,即使我们在格式化富文本格式时可能会遇到问题。
    猜你喜欢
    • 2020-03-03
    • 1970-01-01
    • 2014-07-24
    • 2015-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多