【问题标题】:How to add web reference to script component in SSIS如何在 SSIS 中添加对脚本组件的 Web 引用
【发布时间】:2014-07-07 20:34:24
【问题描述】:

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

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

任何解决方法,帮助??

编辑 1

这是更好看的错误

脚本组件的“属性”面板上没有出现 PrecompileiIntoBindaryCode 和 DelayValidation 属性。

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

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

【问题讨论】:

  • 能否请您在问题中添加错误消息,从屏幕截图中读取它真的很难!

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


【解决方案1】:

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

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

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

MSDN 文档:

在 SQL Server 2008 Integration Services (SSIS) 及更高版本中,所有 脚本是预编译的。在以前的版本中,您指定是否 脚本是通过为 任务。

与早期版本不同,您可以指示脚本是否 已预编译,所有脚本都在 SQL Server 2008 中预编译 集成服务 (SSIS)。预编译脚本时, 语言引擎在运行时未加载,包运行较多 迅速地。但是,预编译的二进制文件会占用大量磁盘 空间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多