Локальное соединение SQL, генерирующее исключение SqlException в настраиваемом действии Datafactory

Я добавил код для настраиваемого действия фабрики данных Azure в пакетной службе Azure и указал конвейер фабрики данных на службу bacth. Когда я выполняю код в локальной среде, он работает нормально. Но когда я загружаю его для запуска в пакетной службе Azure, он выдает и sqlexception

System.Data.SqlClient.SqlException: при установке соединения с SQL Server произошла ошибка, связанная с сетью или конкретным экземпляром. Сервер не найден или не был доступен. Убедитесь, что имя экземпляра правильное и что SQL Server настроен на разрешение удаленных подключений.


person Maverik    schedule 10.10.2016    source источник
comment
Я предполагаю, что от облачной пакетной службы до локального SQL Server нет прямой видимости. Используя встроенные компоненты для подключения из облака к локальной сети, это должно происходить через шлюз управления данными. Вы закодировали эквивалент в собственном коде? Другими словами, по какой причине вы должны полагать, что пакетная облачная служба может видеть ваш локальный SQL-сервер?   -  person wBob    schedule 10.10.2016
comment
Поскольку код выполняется в службе Azure Bacth, нужен ли шлюз управления данными. Разве код не должен иметь доступ к серверу sql, как если бы код работал на какой-то виртуальной машине облачной службы?   -  person Maverik    schedule 10.10.2016


Ответы (1)


Сегодня пользовательское действие не может получить доступ к локальному ресурсу. Шлюз перемещения данных можно использовать только в сценарии копирования \ Sproc, и у него нет интерфейса для выполнения кода клиента.

Решение здесь: попробуйте скопировать действия, чтобы скопировать свои данные в хранилище Azure или другое общедоступное облако, к которому есть доступ. Затем запустите настраиваемое действие. В противном случае вы можете попробовать vNet и ExpressRoute для подключения общедоступного облака Azure к среде onprem.

person Charles Gu    schedule 10.10.2016