Принудительное взаимодействие Word для одновременного использования нескольких экземпляров WordC#

Место общения программистов C#
Anonymous
Принудительное взаимодействие Word для одновременного использования нескольких экземпляров Word

Сообщение Anonymous »

У меня возникла странная проблема, и я не могу понять, что может быть ее причиной. У нас есть система, внутри которой есть процесс преобразования файлов в формат PDF. Для этого мы используем Word Interop. Это делается путем запуска внешнего процесса из службы, которая сама запускает Word, как показано ниже:

Код: Выделить всё

Microsoft.Office.Interop.Word.Application application = null;
try
{
application = new Microsoft.Office.Interop.Word.Application();
application.Application.Visible = false;
application.Visible = false;

Microsoft.Office.Interop.Word.Document doc = application.Documents.Open(tempSource, Visible: false, ReadOnly: true, NoEncodingDialog: true, AddToRecentFiles: false);
doc.SaveAs2(tempDestination, Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatPDF);
doc.Close(false);
}
finally
{
application?.Quit();
}
На нашем сервере с установленным Word 2013 мы можем одновременно запускать несколько экземпляров этого приложения, и Word будет обрабатывать их все одновременно, отображая несколько экземпляров Word в диспетчере задач. Однако на сайте клиента, где также установлен Word 2013, кажется, что независимо от того, сколько наших внешних процессов открыто, сам Word ограничен одним экземпляром и откроет следующий только после завершения первого.Кто-нибудь знает, как я могу обойти это и заставить Word обрабатывать несколько одновременно?
Из-за характера этой проблемы я похоже, не могу найти особой помощи по этому вопросу, и большинство статей указывают на такие решения, как DesktopAppsAlwaysLaunchNewInstance или использование параметра командной строки -X, ни одно из которых здесь не применимо. Я также узнал об DisableMergeInstance, но, похоже, это касается только Excel и в любом случае не установлено на нашем сервере для Word.

Подробнее здесь: https://stackoverflow.com/questions/787 ... rd-at-once

Вернуться в «C#»