Автоматизация Office через службу Windows на сервере 2008

У нас есть служба Windows, которая работает на сервере 2003. Он открывает исходный документ Word, используя Word Interop, а затем делает некоторые вещи с ним. Он также работает с файлами Excel и PowerPoint.

Недавно мы попытались переместить эту службу на машину Windows 2008 Server и с ней возникают реальные проблемы.

COMException в Microsoft.Office.Interop.Excel.Workbooks.Откройте COMException в Microsoft.Office.Interop.Word.Documents.Open

Я получаю вышеуказанные исключения, когда служба Windows работает на сервере 2008 Server. Глядя на диспетчер задач, приложение действительно загружается нормально, но затем снова закрывается.

Я уже читал о Vista и Server 2008, которые больше не имеют Session0, и попытались изменить свойства безопасности Office DCOM соответственно, включая изменение личности пользователя, запускающего их в Integrated, но безрезультатно.

Кто-нибудь знает, возможно ли это вообще? Это фундаментальный аспект нашей системы, и поэтому мы должны уметь это делать.

благодаря

windows-services,windows-server-2008,ms-office,dcom,comexception,

21

Ответов: 4


59 принят

У меня возникли проблемы с автоматизацией Office из Windows Service под Windows Server 2008, хотя это хорошо работает в Windows Server 2003. Проблема также возникает при вызове Open, поэтому это может быть та же проблема.

Я пробовал следовать рекомендациям H Ogawa в этой теме MSDN и, похоже, работал. Это странно, но, кстати, г-ну Огаве приятно узнать об этом.

Резюме «Ogawa Hack»: создать папку рабочего стола для системного профиля, например:

 C:WindowsSystem32configsystemprofileDesktop

и , если вы работаете на 64-битной машине, создайте еще одну, как:

 C:WindowsSysWOW64configsystemprofileDesktop

Кроме того, папке (-ам) требуется разрешение на запись для любого пользователя, «управляющего» Office.


[Изменить: исправленный URL ссылки]

[Edit 2: выяснено, что в 64-битной Windows вам нужны обе папки, а не только WOW64)


4

Если вы используете Apache, вам также может потребоваться выполнить следующие шаги, чтобы заставить MS Word работать правильно (вместе со всем, о чем говорится в других ответах):

Ниже приведен скриншот, показывающий два диалога, которые вам нужно поднять: введите описание изображения здесь

Для Apache:

Услуги-> Apache-> Щелкните правой кнопкой мыши (Свойства) -> Вход в систему

MS Word:

Запустить dcomcnfg.exe-> Консоль Root-> Службы компонентов-> Компьютеры-> Мой компьютер-> Конфигурация DCOM-> Найти приложение Microsoft-> ??Щелкните правой кнопкой мыши (Свойства) -> Вкладка Identity

** если вы не можете найти MS Word, убедитесь, что вы запускаете правильную конфигурацию DCOM (64 бит против 32 бит) в зависимости от того, какую версию Office вы установили.

Здесь есть два варианта: вы можете установить Apache для использования локальной системной учетной записи и установить флажок в поле ALLOW desktop. Если вы это сделаете, вам необходимо установить идентификатор для MS Word для интерактивного пользователя .

В противном случае вам необходимо установить оба параметра одному пользователю (в идеале, пользователю, который вошел в систему), как показано на рисунке.


1

Ну, вам нужно запустить «MMC-32» (командную строку) для запуска 32-битной MMC, а затем добавить компонентные сервисы (меню «Файл»> «Добавить / удалить оснастки»)

затем следуйте одной из этих инструкций:

http://theether.net/download/Microsoft/kb/288366.html


0

Это также происходит в Vista с включенным UAC. Возможно, вы захотите установить учетную запись DCOM в качестве учетной записи администратора и снова протестировать ее.

Я также недавно начал сталкиваться с этой проблемой в окне XP, пытаясь открыть книги в Excel через службы взаимодействия, но пока не нашел обходного пути. Я бы хотел, чтобы любые другие идеи, которые сообщество могло бы выбросить там ...

окна-услуги, окна-сервер-2008, MS-Office, DCOM, COMException,
Похожие вопросы