Excel com automation перестает работать, когда пользователь выходит из системы

Я разработал серверное приложение, которое использует Excel 2007 com automation для преобразования некоторых файлов xls. Он запускается как служба на экземпляре центра обработки данных Windows, работающем под собственным пользователем, и мне пришлось изменить параметры безопасности DCOM ("запуск как интерактивный пользователь"), чтобы заставить его работать.

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

У кого-нибудь была такая же проблема? Я рад любой помощи на данный момент.

5 ответов


хорошо, поэтому я не мог заставить Excel работать без интерактивного пользователя, никакое количество трюков DCOMCNFG не подойдет. Поэтому я просто настроил autologin для пользователя, под которым работает служба (см. http://support.microsoft.com/kb/315231 для инструкций).

это влияет на то, что при загрузке сервера этот пользователь будет входить в систему как сеанс интерактивной консоли. В отличие от сеансов RDP, это постоянно и делает Excel счастливым.

другие подсказки для poors души, которые должны сделать что-то подобное:

  • создать папку C:\Windows\System32[или SysWOW64]\config\systemprofile\Desktop
  • убедитесь, что принтер по умолчанию настроен для пользователя, под которым работает служба
  • измените настройки DCOMCNFG (mmc -32, добавьте "службы компонентов") Excel для запуска с помощью интерактивной учетной записи
  • измените глобальные значения по умолчанию DCOM, чтобы разрешить локальный доступ, локальный запуск и локальную активацию для пользователя, которого запускает служба под

удачи!


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


у меня была эта проблема, и я обнаружил, что ответ на самом деле находится в DCOM Configuration.

Я сделал следующее, чтобы решить проблему:

  1. откройте Свойства Excel DCOM
  2. перейти к Identity tab
  3. выберите This User
  4. введите учетные данные того, кто имеет доступ к Excel

возможно, вам придется пойти в Security tab и убедитесь, что пользователь, указанный выше, имеет соответствующий Разрешения.

после этого я смог выйти из сервера, все еще используя библиотеки автоматизации Excel COM.


если учетная запись под управлением EXCEL является администратором, то это будет работать:

для 64-разрядной версии (x64) создайте эту папку: C:\Windows\SysWOW64\config\systemprofile\Desktop Для 32-разрядной версии (x86) создайте эту папку: C:\Windows\System32\config\systemprofile\Desktop В противном случае для решения этой проблемы выполните следующие действия:

  1. войти на сервер в качестве администратора
  2. перейдите в "Пуск" - > " Выполнить "и введите" MMC comexp.msc / 32"
  3. посмотреть свойства приложения Microsoft Excel в разделе удостоверение измените его на интерактивного пользователя из запускающего пользователя (который установлен по умолчанию).
  4. перейдите к свойствам книги Microsoft Office Excel 2007 в разделе удостоверение, измените его на интерактивного пользователя из запускающего пользователя (который установлен по умолчанию).
  5. перейдите на вкладку Безопасность для приложения Microsoft Excel и выберите Настроить для "Разрешения на запуск и активацию" и добавление учетной записи (под которой работает EXCEL) ему и дать ему разрешение" локальный запуск "и" локальная активация"
  6. перейдите на вкладку Безопасность для книги Microsoft Office Excel 2007 и выберите Настроить для "Права доступа "и добавить учетную запись (под которой работает EXCEL) к нему и дать ему разрешение" локальный доступ"

сервер:

A) переключить "интерактивный пользователь" на "Указанный Пользователь".

B)" этот пользователь " работает только после создание этих папок :

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

C) подождите... Шаг B) запускает Windows для автоматического создания:

  • C:\Users\Default\Desktop

обратите внимание на определение понятия "интерактивного пользователя" является спекулировали на том, что активный пользователь, вошедший в систему на сервер. Таким образом, сбой запуска MS Office, когда пользователь не активен на сервере.

т. е., для меня решение было гибридом уже предложенных решений. Я использовал Office 2013 (x86) на Win 2012R2. Моя проблема была вместо этого с Word (использовать WordToPDF).

детали для шага B:

  • войти на сервер > пуск > запустить DCOMCNFG.EXE (для запуска служб компонентов) > корень консоли > службы компонентов > компьютеры > Мой компьютер > Конфигурация DCOM...
  • прокрутите до "Microsoft Word 97 - 2003 Document" или "Microsoft Excel Application" (... т. е., независимо от того, что вам нужно запустить MS Office)...
  • щелкните правой кнопкой мыши и выберите "свойства" > вкладка "удостоверение" > выберите "этот пользователь" > введите учетные данные для некоторых пользователей с доступом к MS Office на сервер. (Я использовал пользователя с правами администратора.)

детали для шага C:

  • ожидание варьируется от 5 мин в течение ночи. При необходимости создайте эту папку вручную (если папка не существует и вы спешите завершить тестирование).