Вопрос

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

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

Comexception at microsoft.office.interop.excel.workbooks.open comexception на microsoft.office.interop.word.documents.open

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

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

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

Спасибо

Это было полезно?

Решение

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

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

Краткое описание «взлома Огавы»:создайте папку на рабочем столе для системного профиля, например:

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

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

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

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


[Редактировать:исправленный URL ссылки]

[Редактировать 2:уточнил, что в 64-битной Windows нужны обе папки, а не только WOW64]

Другие советы

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

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

Для Апача:

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

MS Word:

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

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

Здесь есть два варианта: вы можете настроить Apache на использование Локальная системная учетная запись и установите флажок РАЗРЕШИТЬ взаимодействие с рабочим столом.Если вы это сделаете, вам необходимо установить Личность для MS Word Интерактивный пользователь.

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

Что ж, вам нужно будет запустить «MMC -32» (командная строка), чтобы запустить 32-битную MMC, а затем добавить сервисы компонентов (File> Добавить / удалить меню Snap-Ins ')

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top