我有一个简单的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运行此导入的包。仍然......没有发生任何事情。
有谁知道什么是错的?我如何处理以下事实:
2.it与导入的ssis包的配置文件有关。我应该寻找什么?
请帮帮我: 我希望我已经提供了所有必要的信息来调查问题
答案 0 :(得分:1)
是计算机上SQL Server实例的作业?我问,因为它可能是从SQL Server到您拥有Web服务的计算机的防火墙或权限问题。
另外我建议删除try catch并启用包配置,这样你就可以看到它是否是错误的
关于保护级别,如果您使用的是EncryptSensitiveWithUserKey,则程序包将不会加载数据库敏感信息(登录名和密码),除非它位于您开发它的计算机上。同样的事情适用于EncryptAllWithUserKey,但在这种情况下它甚至不会打开包