And*_*ndy 9 automation ms-word ms-office office-interop
首先,请不要回复通用建议,不要在服务器上自动化Word或在MS网页上链接"如果你真的必须如何在服务器上自动化word".我知道这一点.
我有一个作为Windows服务运行的进程,并使用.Net OLE interop自动化Office(主要是Open和SaveAs).这段代码在使用Windows和Office版本(32位和64位)的许多组合的数百台服务器上可靠地工作了8年,所以我很高兴这种机制是可靠的.至今...
使用Server 2012 R2,它可以与PowerPoint和Excel一起使用,但无法尝试打开word文档:
System.Runtime.InteropServices.COMException (0x800A16A0):
The file appears to be corrupted.
at Microsoft.Office.Interop.Word.Documents.Open...
Run Code Online (Sandbox Code Playgroud)
我到目前为止的观察结果可能相关或不相关:
显然我仍然有事情需要调查,但有兴趣听到其他人是否已经看到这个特定的问题,即使你还没有解决它.请注意办公自动化有很多困难和问题,所以除非你的症状与我的非常相似,否则你可能没有同样的问题.
Céd*_*nne 14
这里的问题相同,但现在已经完全解决了.
我将Word 2013与运行在服务流程中的Windows 2012 R2 Server结合使用,可以执行我想要的所有操作,而无需启动交互式会话.我用它来将文档转换为PDF文件.在Windows服务中,我托管了一个WCF服务.
创建文件夹:(替换System32用Syswow64取决于您使用x86或x64位版本)
C:\ Windows\System32\config\systemprofile\AppData\Local\Microsoft\Windows\INetCache C:\ Windows\System32\config\systemprofile\Desktop
最后也是最重要的一步!
Start - run - dcomcnfg.exe
Run Code Online (Sandbox Code Playgroud)
打开属性 - >组件服务 - DCOM配置 - Microsoft Word 97 - 2003文档(请注意,此处未提及该版本,但无关紧要Office 2013将使用此作为DCOM配置)
打开标签标识.将运行配置为本地管理员帐户.我做了一些测试即使没有为用户启动交互式会话,Word 2013也能正常工作.
我们(我的公司)目前面临着同样的问题,这几乎是您问题的复本。我们已经完成了围绕该领域的广泛测试,我现在正在与 MS 支持工程师进行讨论,试图找到解决方法。
不幸的是,这是他们不希望我们做的事情,我认为他们已经加强了 Windows Server 2012 的安全性以阻止人们这样做。
我们所做的尝试应该对您有帮助:
我们的问题源于这样一个事实:我们正在使用与本地系统用户(即登录计算机时拥有的用户类型)无关的用户运行 word,Windows 将不允许这种情况再发生。
我自己和 MS 工程师正在研究“愚弄”Windows,使其认为它正在将 Word 作为本地服务运行,但是 MS 工程师表示,这充其量是一个渺茫的机会,到目前为止,我们所尝试的一切都以失败告终。看起来不太好。
抱歉,我没有答案,但我想知道你并不孤单是件好事吗?