Microsoft Word: Normal.dotm, не могу открыть существующий файл: с помощью Microsoft.Office.Interop.Word в c # - PullRequest
0 голосов
/ 12 октября 2018

У меня есть два процесса печати, которые используют Microsoft.Office.Interop.Word, и каждый из них будет нормально работать в изолированных средах.Однако, когда они запускаются по одному на одном компьютере, я получаю сообщение об ошибке Microsoft 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 году. Мы используем Microsoft Word 2016. Я не сталкивался с этой проблемой в прошлом, и любые замечания приветствуются.

1 Ответ

0 голосов
/ 21 февраля 2019

Я решил проблему, установив ReadOnly на normal.dotm.Также удалите права доступа на запись пользователя, под которым работает Word.Проверено на Word 2010.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...