G+

Ошибка при работе с COM в Excel Application

Программирование Asp.net
Предыдущий Следующий

При работе с Excel возникает ошибка

System.Runtime.InteropServices.COMException (0x80080005): Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80080005

Проблема в том, что по умолчанию Microsoft Excel в качестве COM-объект может использовать только учетные записи:
    Administrator
    System
    Interactive

Когда вы используете com объек на сайте ASP.Net в системе Windows XP, ваше веб-приложение работает в качестве учетной записи ASPNET. А она доступ не имеет.

Способ решения этой проблемы является изменение настройки DCOM конфигурации для объекта приложения Microsoft Excel.

Настройка DCOM

Открываем Пуск->Выполнить, введим "DCOMCNFG" и нажмаем ввод.
Это должно открыть "Component Services" (вы также можете открыть из Администрирование - Службы компонентов "


Развернуть "Службы компонентов"
Развернуть "Компьютеры"
Развернуть "Мой компьютер"
Выберите "Настройка DCOM"
Выберите "Microsoft Excel Application" элемент.
Щелкните правой кнопкой мыши и выберите Свойства
Выберите вкладку Безопасность и вы должны увидеть следующее:

Под "Launch and Activation Permissions" выберите "Customize" вариант.
Нажмите кнопку "Изменить"

Windows XP


Windows 2003 Server

Нажмите кнопку "Добавить", чтобы добавить новую учетную запись в список.
В диалоговом окне, которое отображается нажмите кнопку Locations

В этом диалоговом окне прокрутите спискок вверх (иногда первый пункт не видно), но выделите верхнюю и выбрать первый пункт, который представляет собой имя компьютера. В приведенном ниже списке "CCROWE" это имя моего компьютера.

Нажмите кнопку ОК
В диалоговом окне, которое отображается введите "ASPNET" в качестве имени учетной записи (убедитесь, что местоположение установлено имя компьютера, на котором IIS включен) на Windows XP или если вы работаете на Windows 2003 Server необходимо ввести учетную запись, пул приложений работает как по умолчанию "Network Service"

Windows XP

Windows 2003 Server

Нажмите кнопку ОК
Теперь убедитесь, что вы выбираете следующие параметры для "ASP.NET Machine Account" или учетная запись, удостоверение пула приложений (по умолчанию сетевой службы) Эти настройки можно увидеть ниже:

Windows XP

Windows 2003 Server

Жмите ОК

Комментарий:
  • В 29.09.2014 9:41:36, Аноним

    Добрый день. Развернул "Настройка DCOM" - в списке "Microsoft Excel Application" нет. Excel на сервере установлен.

  • В 30.09.2014 9:22:28,

    Рекомендую всем отказаться от использования COM объектов. Для работы c Excel я использую библиотеку SpreadsheetLight ее и рекомендую.

  • В 14.10.2014 16:40:41, Аноним

    Если в настройке отсутствует, то стоит проверить как он назван в реестре, ну или: Идем в редактор реестра и добавляем туда что-то вроде этого (ветка HKCR\CLSID\{00024500-0000-0000-C000-000000000046} там уже есть): Код: REGEDIT4 [HKEY_CLASSES_ROOT\CLSID\{00024500-0000-0000-C000-000000000046}] "AppID"="{00024500-0000-0000-C000-000000000046}" [HKEY_CLASSES_ROOT\AppID\{00024500-0000-0000-C000-000000000046}] @="Microsoft Excel Application"

  • В 27.05.2015 13:49:14, Аноним

    Спасибо. А какую библиотеку посоветуете для работы с pdf?

Самостоятельный отпуск Опыт заказа вывоза мусора в Киеве