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.
Я сделал следующее, чтобы решить проблему:
- откройте Свойства Excel DCOM
- перейти к
Identity
tab - выберите
This User
- введите учетные данные того, кто имеет доступ к Excel
возможно, вам придется пойти в Security
tab и убедитесь, что пользователь, указанный выше, имеет соответствующий Разрешения.
после этого я смог выйти из сервера, все еще используя библиотеки автоматизации Excel COM.
если учетная запись под управлением EXCEL является администратором, то это будет работать:
для 64-разрядной версии (x64) создайте эту папку: C:\Windows\SysWOW64\config\systemprofile\Desktop Для 32-разрядной версии (x86) создайте эту папку: C:\Windows\System32\config\systemprofile\Desktop В противном случае для решения этой проблемы выполните следующие действия:
- войти на сервер в качестве администратора
- перейдите в "Пуск" - > " Выполнить "и введите" MMC comexp.msc / 32"
- посмотреть свойства приложения Microsoft Excel в разделе удостоверение измените его на интерактивного пользователя из запускающего пользователя (который установлен по умолчанию).
- перейдите к свойствам книги Microsoft Office Excel 2007 в разделе удостоверение, измените его на интерактивного пользователя из запускающего пользователя (который установлен по умолчанию).
- перейдите на вкладку Безопасность для приложения Microsoft Excel и выберите Настроить для "Разрешения на запуск и активацию" и добавление учетной записи (под которой работает EXCEL) ему и дать ему разрешение" локальный запуск "и" локальная активация"
- перейдите на вкладку Безопасность для книги 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 мин в течение ночи. При необходимости создайте эту папку вручную (если папка не существует и вы спешите завершить тестирование).