从SQL Agent Job调用Web服务无法正常工作

时间:2010-08-18 05:39:47

标签: sql-server-2005 sql-server-2000 activex sql-job

我有一个SQL 2000 DTS包,计划从SQL 2005 SQL Agent作业运行。在这个DTS中有一个ActiveX步骤,它具有以下VBScript来调用Web服务。

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时,我可以看到它运行正常并且可以调用Web服务。但是,从SQL作业运行时,它不会调用Web服务。这甚至不会抛出错误,但我可以从我们的日志中看出没有调用webserivce。我尝试以SQLServiceAccount身份登录时手动运行DTS,这样可以正常工作。 SQL作业所有者是'sa'

任何人都知道为什么在从SQL作业运行时这不起作用但在DTS中手动运行时工作正常?

1 个答案:

答案 0 :(得分:1)

我的解决方案是从存储过程调用Web服务,只是让SQl作业运行它而不是DTS包

你可以在SQL 2000中调用t-sql中的web服务

  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