Вызов веб-службы из SQL Agent Job не работает - PullRequest
1 голос
/ 18 августа 2010

У меня есть пакет SQL 2000 DTS, который планируется запустить из задания агента SQL 2005 SQL. В этом DTS есть шаг ActiveX, который имеет следующий VBScript для вызова веб-службы.

Dim http: set http = CreateObject("MSXML2.ServerXMLHTTP.6.0") 
http.setProxy 2, "http://123.45.67.89:8080" 
http.open "GET", "http://mywebservices.com/MyWebMethod?Param1=value1", false 
http.setProxyCredentials "SQLServiceAccount", ""
http.send

При запуске этого DTS вручную я вижу, что он работает нормально и может вызвать веб-сервис. Однако при запуске из задания SQL он не вызывает веб-сервис. Это даже не выдает ошибку, но я могу сказать из наших журналов, что webserivce не был вызван. Я попытался запустить DTS вручную, когда вошел в систему как SQLServiceAccount, и это работает нормально. Владелец задания SQL - 'sa'

У кого-нибудь есть идеи, почему это не работает при запуске из задания SQL, но работает нормально при запуске вручную в DTS?

1 Ответ

1 голос
/ 30 сентября 2010

Мое решение для этого было вызвать веб-сервис из хранимой процедуры и просто получить задание SQl для его запуска, а не пакет DTS

Вы можете вызвать веб-сервис в t-sql, как это происходит в SQL 2000

  exec sp_OACreate 'MSXML2.ServerXMLHTTP.6.0', @obj OUT
  exec sp_OAMethod @obj, 'Open', NULL, 'GET','http://mydomain.com/mywebservicesite/default.asmxL', false
  exec sp_OAMethod @obj, 'send'
  exec sp_OAGetProperty @obj, 'responseText', @response OUT
  exec sp_OADestroy @obj
...