Подтвердить что ты не робот

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

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

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

COMException в Microsoft.Office.Interop.Excel.Workbooks.Open COMException в Microsoft.Office.Interop.Word.Documents.Open

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

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

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

Спасибо

4b9b3361

Ответ 1

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

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

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

 C:\Windows\System32\config\systemprofile\Desktop

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

 C:\Windows\SysWOW64\config\systemprofile\Desktop

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


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

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

Ответ 2

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

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

Для Apache:

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

MS Word:

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

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

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

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

Ответ 3

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

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

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

Ответ 4

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

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