如何在SSIS中添加脚本组件的Web引用

时间:2014-07-07 20:34:25

标签: c# .net web-services ssis etl

我在SSIS中有一个包,我需要从Web服务中检索一些数据。我不能使用Web服务任务,因为服务的名称有空格,然后我不知道为什么这种Web服务不可能。所以我将脚本组件作为源代码。我的想法是使用c sharp从该脚本中使用Web服务。我添加了Web引用,脚本编译得很好。 问题是在关闭脚本编辑器后,脚本组件会引发错误。当我尝试执行包时显示如下图。

error code

我正在使用Visual Studio 2010.我确定问题出在Web引用上,因为当我删除它时,错误消失了。

任何解决方法,帮助??

修改1

这是更好看的错误

error code

PrecompileiIntoBindaryCode和DelayValidation属性都不会出现在Script组件的Properties面板上。

编辑2 我最终消费了dinammicaly的网络服务。 Here这是拯救我生命的帖子。

我还使用SOAPUI程序来了解对Web服务的xml请求。

1 个答案:

答案 0 :(得分:0)

错误消息通常意味着验证失败;在大多数情况下,由于过时的元数据或元数据未使用最近的更改进行更新。看起来架构已更新为Web服务引用。尝试将ValidateExternalMetadata设置为False

VS_ISBROKEN消息是最后一个验证错误,并且在此之前还出现了另一条弹道消息 - The binary code for the script is not found

有时代码中的任何错误都可能导致此错误。打开脚本。确保没有错误。再次关闭它并单击OK。如果您确定代码是正确的,您可以转到脚本属性并将PrecompileiIntoBindaryCode设置为False,默认设置为true。这位于属性窗口的“属性”或“脚本”选项下。或DelayValidation属性,需要设置为' TRUE'。

MSDN文档:

  

在SQL Server 2008 Integration Services(SSIS)和更高版本中,全部   脚本是预编译的。在以前的版本中,您指定了是否   脚本是通过为其设置预编译属性来预编译的   任务。

     

与早期版本不同,您可以在其中指明脚本   预编译,所有脚本都在SQL Server 2008中预编译   集成服务(SSIS)。当脚本被预编译时,   语言引擎在运行时未加载,并且程序包运行更多   很快。但是,预编译的二进制文件占用大量磁盘   空间。