我正在尝试在我的SSIS包中调用Net.TCP WCF服务。我已经设置了脚本组件,在服务引用中将.NET Framework更改为3.5。我正在根据以下链接中提供的示例创建示例包。
How to Configure an SSIS Package to Access a Web Service using WCF
链接指出要覆盖 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
的引用。
有人可以指出我在这里做错了吗?
答案 0 :(得分:1)
您正在使用控制流标签上提供的 Script Task
,而不是 Script Component
转换数据流任务。
在 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 article的示例不使用此脚本任务。
在控制流选项卡上,双击数据流任务以切换到数据流选项卡。从工具箱上的数据流转换部分拖放 Script Component
。
当您拖放脚本组件时,将出现 Select Script Component Type
对话框。您必须选择适合您要求的合适的。此示例将类型设置为 Source
,以便我们可以查看脚本编辑器。点击 OK
。
双击脚本组件以查看 Script Transformation Editor
。在脚本转换编辑器上,单击脚本页面,然后单击 Edit Script...
Integration Services Script Component
代码编辑器将打开。您会注意到 ScriptMain
类继承自UserComponent
。这是您在MSDN blog article中练习WCF示例代码所需的组件。
您可以在 PreExecute
代码中查看您一直在寻找的 Script Component
方法。