异常详细信息:System.Runtime.InteropServices.COMException:Word 无法读取此文档。 它可能已损坏。 尝试以下一项或多项操作:
- 打开并修复文件。
- 使用文本恢复转换器打开文件。 Microsoft.Office.Interop.Word.Documents.Add(Object& Template, Object&NewTemplate, Object& DocumentType, Object& Visible( +0
在应用程序服务器上通过 IIS 运行解决方案时,我收到此错误。它在本地工作正常。 尝试了两者:在DCOM配置中将Word 97 - 2003文档身份验证Microsoft更改为无,并在安全中更改交互式用户权限。 并且所有必需的权限都提供给 IIS 用户。
将 IIS 用户添加为应用服务器上的管理员解决了此问题。
请参阅下面的 URL 以在 Windows 服务器上添加新用户/管理员。 https://social.technet.microsoft.com/wiki/contents/articles/13436.windows-server-2012-how-to-add-an-account-to-a-local-administrator-group.aspx
Office 服务器端自动化的注意事项指出:
Microsoft 目前不建议也不支持从任何无人参与、非交互式客户端应用程序或组件(包括 ASP、ASP.NET、DCOM 和 NT 服务(自动化Microsoft Office 应用程序,因为在此环境中运行 Office 时 Office 可能会表现出不稳定的行为和/或死锁。
如果要生成在服务器端上下文中运行的解决方案,则应尝试使用已安全执行无人参与的组件。或者,您应该尝试找到至少允许部分代码在客户端运行的替代方法。如果使用服务器端解决方案中的 Office 应用程序,则该应用程序将缺少成功运行所需的许多功能。此外,您将承担整体解决方案稳定性的风险。
如果要处理旧的 (doc( 文件格式,则需要使用为服务器端执行设计的组件。否则,您可以自由使用这些Open XML SDK
,有关详细信息,请参阅 Open XML SDK 2.5 for Office 入门。
请确保运行该网站的帐户具有足够的权限来打开 Word 文档。在IIS
中,将应用程序使用的应用程序池的标识属性更改为LocalSystem
。
此外,请检查其他一些可能的原因。
https://www.systoolsgroup.com/updates/how-to-fix-word-was-unable-to-read-document-it-may-be-corrupt/
如果有进一步的进展,请随时告诉我。