0 Вопрос: Вызов службы SSIS для SMO работает в Visual Studio, но завершается неудачно при запуске из задания агента SQL на сервере. Работы без SMO работают нормально

вопрос создан в Wed, May 8, 2019 12:00 AM

Я написал пакет служб SSIS 2017, в котором используется SMO (объекты управления сервером sql) для синхронизации моего сервера аварийного восстановления (DR) с моим рабочим сервером. Оба сервера работают в 2017 году. Пакет нормально работает на сервере DR из Visual Studio 2017 (SSDT), используя мой сетевой вход в систему, но происходит сбой при запуске с сервера DR в качестве задания агента sql с этой ошибкой:

Задача сценария: ошибка: исключение вызвано целью вызова.

Я попытался запустить задание агента sql, используя прокси-сервер с моим логином в сети, и все еще получаю сообщение об ошибке. Оборачивание блока кода в Try /Catch не привело к лучшему сообщению об ошибке. Мне удалось успешно подключиться с помощью SMO из сценария powershell в задании агента sql на сервере DR. Пример кода:

[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | out-null
$serverInstance = New-Object ('Microsoft.SqlServer.Management.Smo.Server') Server1

Прочие сведения о задаче сценария.

Версия целевого сервера: SQL Server 2017

Target Framework: .Net Framework 4.5 (на серверах 4.6.2)

Литература:

  • D: \Program Files (x86) \Microsoft SQL
    Server \140 \DTS \Tasks \Microsoft.SqlServer.ConnectionInfo.dll
  • D: \Program Files (x86) \Microsoft SQL
    Server \140 \DTS \Tasks \Microsoft.SqlServer.Smo.dll

Код:

Imports Microsoft.SqlServer.Management.Smo
Dim smoSourceServer As Server = New Server("Server1")

Любая помощь или идеи о том, что можно сделать, чтобы получить эту работу, очень ценится!

    
0
  1. Я обычно получаю эту неприятную общую ошибку, когда забываю развернуть DLL в GAC или когда работаю в 64-битном режиме, когда компонент моего пакета установлен только в 32-битной версии. Различия версий в DLLS также могут быть причиной этого, если я правильно помню.
    2019-05-08 16: 18: 56Z
  2. Спасибо за ответ @JoeC! Я проверил GAC и вижу DLLS в кеше: Microsoft (R) .NET Global Assembly Cache Utility. Версия 4.0.30319.0 Авторские права (c) Microsoft Corporation. Все права защищены. Глобальный кэш сборок содержит следующие сборки: Microsoft.SqlServer.ConnectionInfo, версия = 14.0.0.0, культура = нейтральная, PublicKeyToken = 89845dcd8080cc91, processorArchitecture = MSIL Microsoft.SqlServer.Smo, версия = 14.0.0.0, культура = нейтральная, PublicKeyToken = 89845dcd8080cc91, processorArchitecture = MSIL Я тоже пытался работать в 32-битной версии, но это не помогло.
    2019-05-08 16: 46: 13Z
  3. @ JoeC Версии, которые я вижу при выборе ссылок в SSDT, это 14.100.0.0. Может ли это быть проблемой?
    2019-05-08 16: 53: 20Z
  4. Я считаю, что подобная проблема случалась со мной в прошлом, ее стоит попробовать.
    2019-05-09 13: 32: 48Z
0 ответов                              0                         
источник размещен Вот