COMException (0x800A13E9) - Word Interop Services - PullRequest
8 голосов
/ 27 октября 2010

Я получаю эту трассировку стека:

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, я проверил.

Ответы [ 4 ]

8 голосов
/ 10 ноября 2010

Вот решение, которое я нашел:

  1. Поместите папку с именем Desktop на C: \ Windows \ SysWOW64 \ config \ systemprofile (Да, я знаю. WTF?)
  2. Откройте Regedit, перейдите в HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ AppId и отредактируйте две записи, у которых Guid заканчивается на 46. Удалите все имеющиеся у них ключи и добавьте новый ключ с именем RunAs со значением Interactive User

После этого начни молиться. Это не работает, если вы получаете доступ через терминальный сервер. Что является для меня проблемой, хе-хе.

EDIT: Проблема с терминальным сервером заключалась в том, что только администратору разрешено поднимать COM-объекты, поэтому вам нужно подражать администратору.

3 голосов
/ 27 октября 2010

Извините за этот 1-мегабайтный эталон ... Мне просто пришлось запрыгнуть на него.

При автоматизации приложений Office убедитесь, что вы используете локальную учетную запись на сервере с разрешениями для объекта Word COM +, а также документы, с которыми вы пытаетесь работать.
Есть несколько сообщений, касающихся вашей проблемы, указывающих на проблему с учетной записью:

0 голосов
/ 29 января 2019

Обновление Microsoft исправила проблему с обновлением.Для всех, у кого есть проблема с региональным форматом, обновите ваш Office до Версия 1902 (сборка 11328.20158) .Возможно, вам придется перейти на канал ежемесячного обновления, чтобы получить его.Для пользователей Windows 10 1809 проблема может исходить из региональных настроек формата Windows.Кажется, есть проблема, когда вы используете специальный региональный формат, такой как «Английский (Швейцария)».Если вы измените его на «Английский (Великобритания)», все работает нормально.Информацию об этом я нашел здесь

Надеюсь, это поможет кому-то, кто все еще сталкивается с проблемой.

0 голосов
/ 10 ноября 2010

Ваш сценарий НЕ поддерживается Microsoft в соответствии со статьей базы знаний Соображения по поводу автоматизации Office на стороне сервера, в которой говорится, что

В настоящее время Microsoft не рекомендует,и не поддерживает Автоматизацию приложений Microsoft Office из любых необслуживаемых, неинтерактивных клиентских приложений или компонентов (включая ASP, ASP.NET, DCOM и NT Services), поскольку Office может демонстрировать нестабильное поведение и / или тупиковую блокировку при запуске Officeв этой среде.

Затем в статье рассматриваются альтернативы автоматизации на стороне сервера, одним из которых является Open XML.Возможно, вы захотите проверить эту статью, если вы еще этого не сделали.

...