我在SSIS中有一个包,我需要从Web服务中检索一些数据。我不能使用Web服务任务,因为服务的名称有空格,然后我不知道为什么这种Web服务不可能。所以我将脚本组件作为源代码。我的想法是使用c sharp从该脚本中使用Web服务。我添加了Web引用,脚本编译得很好。 问题是在关闭脚本编辑器后,脚本组件会引发错误。当我尝试执行包时显示如下图。
我正在使用Visual Studio 2010.我确定问题出在Web引用上,因为当我删除它时,错误消失了。
任何解决方法,帮助??
修改1
这是更好看的错误
PrecompileiIntoBindaryCode和DelayValidation属性都不会出现在Script组件的Properties面板上。
编辑2 我最终消费了dinammicaly的网络服务。 Here这是拯救我生命的帖子。
我还使用SOAPUI程序来了解对Web服务的xml请求。
答案 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)。当脚本被预编译时, 语言引擎在运行时未加载,并且程序包运行更多 很快。但是,预编译的二进制文件占用大量磁盘 空间。