RowenaReddy Ответов: 4

Ошибка с Excel и C# при выходе из системы сервера


Привет,
Я написал службу windows на C#, моя служба предназначена для открытия книги excel с поддержкой макросов (это в Excel 2010) я установил эту службу на наш сервер, который работает под управлением server 2008, он 64-разрядный. У моего сервиса, похоже, есть проблема с запуском Excel, когда никто не вошел на сервер, есть ли у кого-нибудь решение для этого.

я получаю следующую ошибку System.Runtime.InteropServices.COMException (0x8000401A): Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 8000401a.

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

Rajesh Anuhya

Отредактировано для readbulity.
--РА

Herman<T>.Instance

какой пользователь запускает эту службу? Имеет ли этот пользователь достаточно прав для запуска excel?

RowenaReddy

Ну Digimanus thx вам за ваш ответ, я так думаю, но просто чтобы я знал, что делаю это правильно, как бы вы проверили, есть ли у пользователя достаточно разрешений?, я также попробовал то, что было упомянуто в обсуждении, на которое вы меня сослали, и изменил идентичность в свойствах конфигурации Dcom для приложения Microsoft excel, чтобы этот пользователь работал, но, к моему ужасу, наша компания не позволит этого, так как это не лучшая практика, поэтому я сейчас пытаюсь найти другой способ обойти это. Есть еще идеи?

Herman<T>.Instance

установить файл Excel в папке Мои документы пользователя, сервис использует. Тогда у него должны быть соответствующие права.

4 Ответов

Рейтинг:
28

thichhochoi

Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 8000401a.


It should be the permissions problem.
Please have a try using the following steps to Configure DCOM:
1. Go to the Start-Run menu to type in "dcomcnfg"  and hit enter to load "Component Services" MMC.
2. Select the "Microsoft Excel Application" item through "Component Services" MMC->Component Services->Computers->My Computer->DCOM Config->Microsoft Excel Application
3. Right click and select Properties->Select Identity Tab->Select This user and add the Administrator accout and password
4. Select Security Tab, Under "Launch and Activation Permissions", Choose "Customize", Click "Edit" button, Add the everyone account and add all the Permissions.
5. Do the same thing in "Access Permissions" and "Configuration Permissions"


Rajesh Tadha

у меня тоже была такая же проблема, и она была решена с помощью вышеупомянутого решения. спасибо @thichhochoi

Member 9320875

спасибо действительно боролся всю неделю, и у вас было решение! :)

Member 12870741

Это также работает для меня, но моя другая проблема заключается в том, что если я открываю файлы Excel, я получаю ошибку: не могу использовать связывание объектов и встраивание. Как мне это исправить? Это происходит только тогда, когда я меняю личность на "этот пользователь", я действительно буду признателен вам за помощь. Я сижу с этой проблемой уже целую вечность. Спасибо

Рейтинг:
2

Herman<T>.Instance

Дополнительную помощь можно найти здесь: http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/2f923b6d-aebb-42ff-804d-21a3763d491b/[^]


Рейтинг:
2

Kachal Khan

вы можете создать другого пользователя , а затем войти с ним в систему и создать remote to 121.0.0.1 и main user (loopback to rpc!!!) затем отсоедините от нового пользователя, и вы будете иметь пользовательские


Рейтинг:
1

pankaj1985tripathi

Ошибка с Excel и asp.net при выходе из системы с сервера


я даю все разрешения в приложении Excel, но не разрешаю ошибку.

1. Перейдите в меню Пуск-Выполнить, введите "dcomcnfg" и нажмите enter, чтобы загрузить MMC "Component Services".
2. выберите пункт "приложение Microsoft Excel" через "службы компонентов" MMC->службы компонентов->Компьютеры->Мой компьютер->DCOM Config->приложение Microsoft Excel
3. щелкните правой кнопкой мыши и выберите Свойства->выберите вкладку Identity->выберите этого пользователя и добавьте учетную запись администратора и пароль
4. Выберите вкладку Безопасность, в разделе "Разрешения на запуск и активацию" выберите "Настроить", Нажмите кнопку "Изменить", добавьте учетную запись everyone и добавьте все разрешения.
5. Сделайте то же самое в разделе "Разрешения доступа" и "разрешения конфигурации"


Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046}
failed due to the following error: 8000401a.





в SimplifiedReports.экспорт(показатель типа INT16, питатель кормить, типа INT16 представление) на
SimplifiedReports.btnExportExcel_Click(отправитель объекта, EventArgs e) at
Системы.Веб.Пользовательского интерфейса.WebControls.Кнопка.OnClick(EventArgs e) at
Системы.Веб.Пользовательского интерфейса.WebControls.Кнопка.RaisePostBackEvent(String eventArgument) at
Системы.Веб.Пользовательского интерфейса.WebControls.Кнопка.Системы.Веб.Пользовательского интерфейса.IPostBackEventHandler.RaisePostBackEvent(Строка
eventArgument) в System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String
eventArgument) в системе.Веб.Пользовательского интерфейса.Страницы.RaisePostBackEvent(postData namevaluecollection, который) в
Системы.Веб.Пользовательского интерфейса.Страницы.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean
includeStagesAfterAsyncPoint)
Получение фабрики COM-класса для компонента с CLSID {00024500-0000-0000-C000-000000000046}
сбой произошел из-за следующей ошибки: 8000401a.
Код проекта 123
Клиент Танея ВИДХЮТ контрольный рядовой. ООО.
Проект УНИТЕК "инфопространство" СЭЗ-TIKRI, Гургаон 140621-е


Пожалуйста, ответь мне...


Панкадж Трипати