Ошибка -2147024891 (0x80070005) Access is denied при создании OLE объекта класса Excel.Application |
Опубликовано d.mokshin в птн, 14/09/2012 - 20:22.
|
||
Конфигурация:
- MS Windows Server 2008 R2 64bit
- MS SQL Server 2008 R2
- MS Excel 2003
В хранимой процедуре создаем объект Excel примерно таким образом:
DECLARE @iXLApp int, @iRetCode int
EXEC @iRetCode = sp_OACreate 'Excel.Application', @iXLApp OUTPUT, 4
Получаем указанную ошибку: -2147024891 (0x80070005) Access is denied.
Долгие мучительные поиски привели к следующему:
-
Проверить, что включен параметр SQL сервера Ole Automation Procedures (правда, если он не включен - выдаются совсем другие сообщения об ошибках ;-) ):
EXEC sp_configure 'Ole Automation Procedures', 1
RECONFIGURE -
Если операционка 32-битная, то может помочь этот шаг:
- запустить DCOMCNFG
- далее в разделе Component Services/Computers/My Computer/DCOM Config нужно найти пункт Microsoft Excel Application
- клик правой кнопкой Свойства (Properties)
- перейти на закладку Безопасность (Security)
- в разделе Разрешения на запуск и активацию (Launch and Activation Permissions) выбрать Настроить (Customize), нажать Изменить... (Edit...), в открывшемся окне добавить для пользователя, под которым запускается служба SQL Server, права Локальный запуск, Локальная активация (Local Launch, Local Activation)
- в разделе Права доступа (Access Permissions) выбрать Настроить (Customize), нажать Изменить... (Edit...), в открывшемся окне добавить для пользователя, под которым запускается служба SQL Server, права Локальный доступ (Local Access)
-
Если операционка 64-битная, и в разделе Component Services/Computers/My Computer/DCOM Config НЕТ пункта Microsoft Excel Application, можно попробовать запустить консоль (MMC) в 32-битном режиме - возможно пункт Microsoft Excel Application появится. Далее все действия как в описанном выше шаге.
Зпуск из командной строки:
mmc /32
И добавить оснастку Component Services - меню Консоль / Добавить или удалить оснастку... (File / Add/Remove Snap-in...) -
Если не помогает ничего описанное выше, то действуем в лоб:
- в разделе Component Services/Computers на My Computer клик правой кнопкой, Свойства (Properties)
- закладка Безопасность COM (COM Security)
- в разделе Права доступа (Access Permissions) нажать Изменить настройки по умолчанию... (Edit Default...), в открывшемся окне добавить для пользователя, под которым запускается служба SQL Server, права Локальный доступ (Local Access)
- в разделе Разрешения на запуск и активацию (Launch and Activation Permissions) нажать Изменить настройки по умолчанию... (Edit Default...), в открывшемся окне добавить для пользователя, под которым запускается служба SQL Server, права Локальный запуск, Локальная активация (Local Launch, Local Activation)
Ссылки, посвященные этой теме:
http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/52767b42-0...
http://www.sql.ru/forum/actualthread.aspx?tid=525718
http://www.sql.ru/forum/actualthread.aspx?tid=197126
Последние комментарии
1 год 36 нед. назад
1 год 36 нед. назад
1 год 36 нед. назад
1 год 36 нед. назад
1 год 38 нед. назад
1 год 38 нед. назад
1 год 39 нед. назад
2 гг. 6 час. назад
2 гг. 1 день назад
2 гг. 27 нед. назад