0

我正在尝试将 Web 服务用作 SSIS 中数据流任务的一部分。现在,我在带有 Web 服务引用的数据流中有一个脚本任务。

任务最终要做的是:从内部数据库中收集所有邮政编码 > 使用我创建的 Web 服务来获取邮政编码的布局/长度 > 将纬度/经度导出到表格中。

正如我之前所说,我已经设置了脚本并且看起来正在工作,但是当我去执行包时出现CannotCreateUserComponentException错误。

对此有任何帮助,或者另一种方法?我是 SSIS 中 Web 服务的新手,所以这是我能想到的最佳解决方案。

编辑:

现在,脚本正在接受来自 an 的邮政编码OLE DB Source,并将输出格式为“lat,long”的字符串(大概)。该网络服务是由公司内部的某个人创建的,并且有一种称为FindCoordinates字符串值(邮政编码)的方法(我认为这称为谷歌地理编码 xml,不完全确定他做了什么)。这是我脚本中当前的代码:

using System;
using System.Data;
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;
using Microsoft.SqlServer.Dts.Runtime.Wrapper;
using SC_6c1b642acd544cd5b01c032b6f8dfd03.csproj.MyService;
using System.Xml;
using System.Web.Services;

[WebService(Namespace = "http://microsoft.com/webservices/")]
[Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute]
public class ScriptMain : UserComponent
{

    public override void PreExecute()
    {
        base.PreExecute();
        /*
          Add your code here for preprocessing or remove if not needed
        */
    }

    public override void PostExecute()
    {
        base.PostExecute();
        /*
          Add your code here for postprocessing or remove if not needed
          You can set read/write variables here, for example:
          Variables.MyIntVar = 100
        */
    }

    public override void Input0_ProcessInputRow(Input0Buffer Row)
    {
        String postal = Row.PostalCode;
        Service service = new Service();

        Row.LatLong = service.FindCoordinates(postal);
    }

}

希望这有帮助。

4

0 回答 0