Microsoft Word:Normal.dotm,无法打开现有文件:在c#中使用Microsoft.Office.Interop.Word

时间:2018-10-12 17:36:03

标签: c# ms-word

我有两个使用Microsoft.Office.Interop.Word的打印过程,它们将在隔离的环境中正常运行。但是,当它们在同一台计算机上一次运行一次时,出现Microsft Word错误,“ Word无法打开现有文件。(Normal.dotm)”。

我们当前针对此问题的解决方案是在脚本执行之间删除Normal.dotm模板文件(这可以始终如一地工作),但是我们不希望在不应引用或损坏模板时删除模板。我们的知识,因为在Microsoft Word中手动打开新文档可以很好地工作。

我们首先运行的脚本一次创建并清理一个Word应用程序,第二个脚本创建一个Word应用程序队列,该队列用于处理大量邮件(请注意,这些过程在执行时间上并不重叠) 。当第二个进程创建其应用程序队列时,将发生错误。这两个应用程序都以下面的相同方式处理清理...

wordApp.Application.Quit(false);
wordApp.Quit(false);
Marshal.FinalReleaseComObject(wordApp);
Thread.Sleep(1000);
GC.Collect(); 

文档本身已发布,因为不再需要它们,如下所示...

object noSave = Word.WdSaveOptions.wdDoNotSaveChanges;
doc.Close(ref noSave);
Marshal.FinalReleaseComObject(doc);

这是一个相对较新的问题,大约五个月前就出现在我们的VNC上。该错误在Windows Server 2008和2012上均会发生。我们正在使用Microsft Word2016。过去我从未遇到过此问题,我们将不胜感激。

1 个答案:

答案 0 :(得分:0)

我通过在normal.dotm上设置 ReadOnly 解决了该问题。还删除运行Word的用户的写访问权限。经过Word 2010测试。