Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Запуск DTS из MSVS и из JOB  [new]
byverka
Member

Откуда:
Сообщений: 338
На сервере
Microsoft SQL Server 2008 R2 (RTM) - 10.50.1617.0 (X64)   Apr 22 2011 19:23:43   Copyright (c) Microsoft Corporation  Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) 


SQL Agent запущен под локальной учетной записью, назовем ее ISUSER.

Создаю DTS пакет (в нем запускается script на vb, который открывает Excel, вносит некоторые изменения, сохраняет Excel, и делает экспорт в таблицу БД) под локальной учетной записью ISUSER, в настройках проекта указываю, чтобы пакет запускался в 32 битной оснастке.
Делаю импорт этого пакета на сервер (вышеуказанный).

Захожу через удаленный рабочий стол на данный сервер по учеткой ISUSER и:
Если запустить пакет из VisualStudio - dts пакет отрабатывает корректно.
Если запустить пакет как сохраненный на сервере из ManagementStudio (как я понимаю он запускается под учетной записью SSIS: NT AUTHORITY\NETWORKSERVICE) - dts пакет отрабатывает корректно.
Если запустить пакет из JOB с указанием в настройках, чтобы пакет запускался под 32 битной оснасткой (запускается под учетной записью агента ISUSER) - то получаю ошибку именно в коде vb. Из истории job:

Описание: 
System.Reflection.TargetInvocationException: 
Адресат вызова создал исключение. 
---> System.Runtime.InteropServices.COMException (0x800A03EC): 
Приложению Microsoft Excel не удается получить доступ к файлу "C:\WebSrv\www\export\old_export\71\74434_l MF Fact - _Премьер_ноябрь_ 2012.xls". 
Это может быть вызвано одной из следующих причин.    
? Указан несуществующий файл или путь.  
? Файл используется другой программой.  
? Имя книги, которую вы пытаетесь сохранить, совпадает с именем другой книги, открытой в данный момент.     
в Microsoft.Office.Interop.Excel.Workbooks.Open(String Filename, Object UpdateLinks, Object ReadOnly, Object Format, Object Password, 
Object WriteResPassword, Object IgnoreReadOnlyRecommended, Object Origin, Object Delimiter, Object Editable, Object Notify, 
Object Converter, Object AddToMru, Object Local, Object CorruptLoad)     
в ScriptTask_2a57eb8751e649b88641a46a3c1cf805.vbproj.ScriptMain.Main() 


У пользователя, под которым запущен SQL Agent есть права на базу, все права на директорию где лежит данный файл, и если заходить через удаленный рабочий стол под этим пользователем и запускать пакет из VisualStudio, или под ним же в ManagementStudio и запустить сохраненный на сервере пакет - ошибок не возникает.
На директорию C:\Windows\SysWOW64\config\systemprofile\Desktop у данной учетки так же все права.

Пыталась запусить SQL Agent под той же учетной записью, что и SSIS запущен (NT AUTHORITY\NETWORKSERVICE) - все равно получаю ошибку:
 Ошибка: 2012-12-11 15:57:05.03    
Код: 0x00000001    
Источник: Set Variables     
Описание: System.Reflection.TargetInvocationException: 
Адресат вызова создал исключение. 
---> System.UnauthorizedAccessException: 
Сбой при получении производства объектов класса COM для компонента с CLSID {00024500-0000-0000-C000-000000000046} в результате следующей ошибки: 80070005.     
в ScriptTask_2a57eb8751e649b88641a46a3c1cf805.vbproj.ScriptMain.Main()


Путем долгих мучений понимаю, что дело в любом случае в правах учетной записи, под которой запускается DTS пакет или JOB, но объясните мне, почему из ManagementStudio сохраненный пакет отрабатывает без ошибок, а из JOB если SQL Agent запущен под той же учеткой что и SSIS - отрабатывает с ошибкой? Может быть из ManagementStudio пакет запускается не под учеткой SSIS?
11 дек 12, 16:50    [13613950]     Ответить | Цитировать Сообщить модератору
 Re: Запуск DTS из MSVS и из JOB  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
запрустите SQL Agent под доменой учетной записью которая имеет права
потому как у вас откроыенно ниче не понятно :(
11 дек 12, 16:56    [13614033]     Ответить | Цитировать Сообщить модератору
 Re: Запуск DTS из MSVS и из JOB  [new]
byverka
Member

Откуда:
Сообщений: 338
Maxx
запрустите SQL Agent под доменой учетной записью которая имеет права
потому как у вас откроыенно ниче не понятно :(


Прошу прощения, ISUSER - доменная учетная запись.
Попробую обрисовать самый главный вопрос, почему когда я запускаю сохраненный на SQL Server DTS пакет в папке MSDB - он отрабатывает корректно. А когда этот же пакет, но только через JOB - получаю ошибку в логе. Пакет не падает при этом, но и не отрабатывает нужным образом.
Из ошибки понятно что недостаточно прав, но каких именно, и под кем какую службу запустить, чтобы было достаточно?
11 дек 12, 17:09    [13614175]     Ответить | Цитировать Сообщить модератору
 Re: Запуск DTS из MSVS и из JOB  [new]
byverka
Member

Откуда:
Сообщений: 338
byverka
Maxx
запрустите SQL Agent под доменой учетной записью которая имеет права
потому как у вас откроыенно ниче не понятно :(


Прошу прощения, ISUSER - доменная учетная запись.
Попробую обрисовать самый главный вопрос, почему когда я запускаю сохраненный на SQL Server DTS пакет в папке MSDB - он отрабатывает корректно. А когда этот же пакет, но только через JOB - получаю ошибку в логе. Пакет не падает при этом, но и не отрабатывает нужным образом.
Из ошибки понятно что недостаточно прав, но каких именно, и под кем какую службу запустить, чтобы было достаточно?


Наврала, ISUSER - все таки локальная учетная запись, потому что данный сервер не в домене и (дмз зоне).
11 дек 12, 17:10    [13614194]     Ответить | Цитировать Сообщить модератору
 Re: Запуск DTS из MSVS и из JOB  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
byverka
На директорию C:\Windows\SysWOW64\config\systemprofile\Desktop у данной учетки так же все права.

и
автор
C:\WebSrv\www\export\old_export\71\

все таки разные директории
11 дек 12, 17:19    [13614287]     Ответить | Цитировать Сообщить модератору
 Re: Запуск DTS из MSVS и из JOB  [new]
byverka
Member

Откуда:
Сообщений: 338
Maxx
byverka
На директорию C:\Windows\SysWOW64\config\systemprofile\Desktop у данной учетки так же все права.

и
автор
C:\WebSrv\www\export\old_export\71\

все таки разные директории


Для учетки ISUSER права даны на обе этих директории.

И как понять под кем и в каком таком интересном режиме отрабатывает без ошибок сохраненный DTS пакет из ManagementStudio, и почему он же, тот же сохраненный DTS пакет только запускаемый из JOB - пишет ошибку в лог?
11 дек 12, 17:30    [13614413]     Ответить | Цитировать Сообщить модератору
 Re: Запуск DTS из MSVS и из JOB  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
студия отрабатывает под учеткой под которой ее открыли и прописали коннект к серверцу - очнеь подозреваю,что там ваша учетка (личная) или минимум та,под которой вы законектились на комп
Джоб - отрабатывает под учеткой Агента (смотрите в свойтвах агента)

Думаю ,что ето разные учетки в вашем случае
11 дек 12, 17:34    [13614457]     Ответить | Цитировать Сообщить модератору
 Re: Запуск DTS из MSVS и из JOB  [new]
byverka
Member

Откуда:
Сообщений: 338
Maxx
студия отрабатывает под учеткой под которой ее открыли и прописали коннект к серверцу - очнеь подозреваю,что там ваша учетка (личная) или минимум та,под которой вы законектились на комп
Джоб - отрабатывает под учеткой Агента (смотрите в свойтвах агента)

Думаю ,что ето разные учетки в вашем случае


В студию я захожу под ISUSER, под ней же и запущен Агент, в том то весь фокус.
Но результат работы из этих двух мест не одинаковый.
11 дек 12, 17:39    [13614498]     Ответить | Цитировать Сообщить модератору
 Re: Запуск DTS из MSVS и из JOB  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
чудес не бывает
11 дек 12, 18:22    [13614854]     Ответить | Цитировать Сообщить модератору
 Re: Запуск DTS из MSVS и из JOB  [new]
Кот Матроскин
Member

Откуда: Москва
Сообщений: 8933
Диск, на котором лежит файл - локальный или сетевой?
Сеанс JOB-а никакие сетевые диски не мапит, естественно, в отличие от RDP-сеанса.
11 дек 12, 18:34    [13614933]     Ответить | Цитировать Сообщить модератору
 Re: Запуск DTS из MSVS и из JOB  [new]
byverka
Member

Откуда:
Сообщений: 338
Кот Матроскин
Диск, на котором лежит файл - локальный или сетевой?
Сеанс JOB-а никакие сетевые диски не мапит, естественно, в отличие от RDP-сеанса.


Нет, диск локальный.

Я может не корректно объясняю, из VisualStudio запущенная под локальной учеткой ISUSER - пакет отрабатывает корректно, так же как и при запуске сохраненного на SQL Server пакета из ManagementStudio.

Не отрабатывает только из JOB, хотя я пробовала запускать и Агента и Службу SSIS под различными учетками - все тщетно.
11 дек 12, 18:55    [13615034]     Ответить | Цитировать Сообщить модератору
 Re: Запуск DTS из MSVS и из JOB  [new]
SergePnb
Member

Откуда: Киев
Сообщений: 456
byverka,

попробуйте создать proxy для учетки под которой так хорошо работает пакет и запустите джоб из под этого proxy
11 дек 12, 19:56    [13615335]     Ответить | Цитировать Сообщить модератору
 Re: Запуск DTS из MSVS и из JOB  [new]
Кот Матроскин
Member

Откуда: Москва
Сообщений: 8933
byverka,

Я бы попробовал добавить к Job-у шаг с какой-нибудь командой OC на этот файл - удалить его, например. Вы сможете понять, в чем у Вас проблема - в пакете или в правах сеанса,
под которым работает Job.
12 дек 12, 10:58    [13617376]     Ответить | Цитировать Сообщить модератору
 Re: Запуск DTS из MSVS и из JOB  [new]
Glory
Member

Откуда:
Сообщений: 104751
byverka
Не отрабатывает только из JOB, хотя я пробовала запускать и Агента и Службу SSIS под различными учетками - все тщетно.

А сервер и ваша VisualStudio что на одной машине находятся ?
12 дек 12, 11:04    [13617424]     Ответить | Цитировать Сообщить модератору
 Re: Запуск DTS из MSVS и из JOB  [new]
byverka
Member

Откуда:
Сообщений: 338
Glory
byverka
Не отрабатывает только из JOB, хотя я пробовала запускать и Агента и Службу SSIS под различными учетками - все тщетно.

А сервер и ваша VisualStudio что на одной машине находятся ?

Да, на одной машине.
12 дек 12, 14:44    [13619481]     Ответить | Цитировать Сообщить модератору
 Re: Запуск DTS из MSVS и из JOB  [new]
byverka
Member

Откуда:
Сообщений: 338
Кот Матроскин
byverka,

Я бы попробовал добавить к Job-у шаг с какой-нибудь командой OC на этот файл - удалить его, например. Вы сможете понять, в чем у Вас проблема - в пакете или в правах сеанса,
под которым работает Job.


На мой взгляд проблема в коде vb, который из VisualStudio и ManagementStudio работает корректно, а из job - некорректно.
Ведь в логе job именно в нем ошибка.
12 дек 12, 14:47    [13619506]     Ответить | Цитировать Сообщить модератору
 Re: Запуск DTS из MSVS и из JOB  [new]
byverka
Member

Откуда:
Сообщений: 338
SergePnb
byverka,

попробуйте создать proxy для учетки под которой так хорошо работает пакет и запустите джоб из под этого proxy


У меня сейчас под любым пользователем пакет работает хорошо, но только из VisualStudio и из ManagementStudio, а из job в лог пишется ошибка в компоненте Script DTS пакета.
12 дек 12, 14:49    [13619536]     Ответить | Цитировать Сообщить модератору
 Re: Запуск DTS из MSVS и из JOB  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
коннекшин стринг в вб коде есть ? Если да - то показывайте
12 дек 12, 14:59    [13619608]     Ответить | Цитировать Сообщить модератору
 Re: Запуск DTS из MSVS и из JOB  [new]
byverka
Member

Откуда:
Сообщений: 338
Всем спасибо за помощь, но проблема решилась совсем иным способом!

Вот тут очень много обсуждений по поводу одной этой проблемы: http://social.msdn.microsoft.com/Forums/en/innovateonoffice/thread/b81a3c4e-62db-488b-af06-44421818ef91

Мне при моем Windows Server 2008 R2 x64 и Excel 2010 помогло следующее, нужно было создать директорию: C:\Windows\System32\config\systemprofile\Desktop, и дать на нее полные права на того пользователя, под которым запущен сервис.

А вот обсуждаемая C:\Windows\SysWOW64\config\systemprofile\Desktop и полные права на нее в моем случае не решила проблему.

А нужно было всего лишь поменять SysWOW64 на System32.

Насколько я поняла, дело в том что Excel нужно чтобы у пользователя, под которым запущен JOB были права на данную директорию, поскольку только в этом случае Excel будет иметь доступ к .xls файлам.
13 дек 12, 11:39    [13624311]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить