我收到了这个堆栈跟踪:
System.Runtime.InteropServices.COMException (0x800A13E9): Word ðú÷ì ááòéä.
at Microsoft.Office.Interop.Word.Documents.Add(Object& Template, Object& NewTemplate, Object& DocumentType, Object& Visible)
at Crm.DocumentGeneration.Printing.DocumentsPrinter.MergeDocuments(ApplicationClass& wordApp, IEnumerable`1 printDataItems, String tempDirectory, String template) in C:\Work\Danel.Nursing\Crm.DocumentGeneration.Printing\DocumentsPrinter.cs:line 249
在谷歌搜索后,似乎COMException(0x800A13E9)内存不足异常,但服务器上有足够的内存来启动太空船 8192太空船。
这是函数调用:
Document document = wordApp.Documents.Add(ref defaultTemplate, ref missing, ref missing, ref missing);
对于defaultTemplate,没有任何内容为null或无效,我选中了。
答案 0 :(得分:8)
以下是我找到的解决方案:
之后,开始祈祷。 如果通过终端服务器访问它不起作用。这对我来说是个问题嘿嘿。
编辑: 终端服务器的问题是只允许管理员引发COM对象,因此您需要模拟管理员。
答案 1 :(得分:3)
抱歉'那个1MB的引用...我只是跳过那个。
自动化Office应用程序时,请确保您使用服务器上的本地帐户以及Word COM +对象的权限以及您尝试处理的文档。
有几个与您的问题有关的帖子指出了帐户问题:
答案 2 :(得分:0)
更新
Microsoft已通过更新解决了该问题。
对于所有对地区格式有疑问的人,请将您的Office更新为 1902版(内部版本11328.20158)。
您可能需要更改为每月更新频道才能获取它。
对于Windows 10 1809用户,问题可能来自Windows区域格式设置。
当您使用特殊的区域格式(例如“英语(瑞士)”)时,似乎出现了问题。
如果将其更改为“英语(英国)”,则一切正常。
我已找到有关here
希望这可以帮助仍然面临问题的人。
答案 3 :(得分:-2)
根据KB文章Considerations for server-side Automation of Office声明
,Microsoft不支持您的方案Microsoft目前不建议也不支持从任何无人参与的非交互式客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT服务)自动化Microsoft Office应用程序,因为Office在此环境中运行Office时,可能会出现不稳定的行为和/或死锁。
然后,本文讨论了服务器端自动化的替代方案,其中一个是Open XML。如果您还没有这样做,可能需要查看这篇文章。