通过SQL Server作业运行时,SSIS包不会执行任何操作

时间:2012-04-10 11:36:38

标签: sql-server-2008 ssis sql-job

我有一个简单的SSIS包,它有 控制流上的Excute SQL Task控件,它从数据库中获取一些值

在DataFlow中,使用脚本组件,它基于“执行SQL任务”给出的值,执行此操作:

public override void CreateNewOutputRows()
    {

        try
        {

            string loginURL = "http://maps.googleapis.com/maps/api/geocode/xml?address=" + Variables.ProjectAddress + "&sensor=true";
            WebClient client = new WebClient();

            string downloadString = client.DownloadString(loginURL);
            XmlDocument xml = new XmlDocument();
            xml.LoadXml(downloadString);

    ///// setting output buffer variables
         }
       catch(Exception ex)
       {

       }
}

所以基本上我正在请求包内的纬度和经度的Web服务。 然后将检索到的值更新到数据库中:

当我从Visual Studio SSIS项目控制台运行包时,一切正常。 但是,当我尝试通过SQL Server 2008 R2作业运行包时,没有任何反应。作业成功执行但没有更新(或插入)行。

我尝试将软件包导入SQL MSDB,然后将保护级别逐个设置为下拉列表中的所有项目here ...然后从SQL Job运行此导入的包。仍然......没有发生任何事情。

有谁知道什么是错的?我如何处理以下事实:

  1. 它与sql用户的许可有关,可以发出Web服务请求。我该如何配置?
  2. 2.it与导入的ssis包的配置文件有关。我应该寻找什么?

    请帮帮我: 我希望我已经提供了所有必要的信息来调查问题

1 个答案:

答案 0 :(得分:1)

是计算机上SQL Server实例的作业?我问,因为它可能是从SQL Server到您拥有Web服务的计算机的防火墙或权限问题。

另外我建议删除try catch并启用包配置,这样你就可以看到它是否是错误的

关于保护级别,如果您使用的是EncryptSensitiveWithUserKey,则程序包将不会加载数据库敏感信息(登录名和密码),除非它位于您开发它的计算机上。同样的事情适用于EncryptAllWithUserKey,但在这种情况下它甚至不会打开包