0

我试图在我的 SSIS 包中调用 Net.TCP WCF 服务。我已经设置了脚本组件,在服务参考中将 .NET Framework 更改为 3.5。我正在根据以下链接中提供的示例创建示例包。

如何配置 SSIS 包以使用 WCF 访问 Web 服务

链接声明要覆盖该PreExecute方法,但我无法在 SQL 2008 R2 的脚本组件中找到该方法。

我的包中的脚本组件以以下代码开头:

[System.AddIn.AddIn("ScriptMain", Version = "1.0", Publisher = "", Description = "")]
public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase

但是,上述文章中编写的示例具有以下代码:

[Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute]
public class ScriptMain : UserComponent

我试过只是复制代码来修复相关的引用,但它没有在哪里包含对UserComponent.

有人可以指出我在这里做错了什么吗?

4

1 回答 1

1

问题原因:

您正在使用Control Flow选项卡Script Task上的可用选项,而不是Data Flow Task中可用的转换。Script Component

SSIS 2008 R2 包说明了差异:

在Business Intelligence Development Studio (BIDS) 2008 R2中创建一个 SSIS 包,并将其命名为SO_10121670.dtsx.

BIDS 将默认显示控制流选项卡。从工具箱中拖放,Script Task如下Data Flow Task所示。

控制流

双击脚本任务以查看Script Task Editor. 在脚本任务编辑器上,单击脚本页面,然后单击Edit Script...

脚本任务编辑器

Integration Services Script Task代码编辑器将打开。您会注意到该类ScriptMain继承自Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase

MSDN 文章中的示例不使用此Script Task

脚本任务

在“控制流”选项卡上,双击“数据流任务”以切换到“数据流”选项卡。Script ComponentToolbox的Data Flow Transformations部分拖放一个。

数据流任务

拖放Script Component时,Select Script Component Type将出现对话框。您必须选择适合您要求的合适的一种。此示例将类型设置为,Source以便我们可以查看脚本编辑器。单击OK

选择脚本组件类型

双击脚本组件以查看Script Transformation Editor. 在脚本转换编辑器上,单击脚本页面,然后单击Edit Script...

脚本转换编辑器

Integration Services Script Component代码编辑器将打开。您会注意到该类ScriptMain继承自UserComponent. 这是您在MSDN 博客文章中练习 WCF 示例代码时需要使用的组件。

您可以在您一直在寻找PreExecute的代码中看到该方法。Script Component

脚本组件

于 2012-04-12T19:35:52.667 回答