gpt4 book ai didi

c# - 通过脚本任务调用 SSIS 中的安全 Web 服务

转载 作者:行者123 更新时间:2023-11-30 16:02:45 28 4
gpt4 key购买 nike

我正在开发一个 SSIS 包,我们必须通过脚本任务在 SSIS 中调用或使用 Web 服务。我浏览了很多链接,但找不到确切的解决方案。我得到了很多引用资料,但我无法破解它。

我的要求是我需要通过具有客户端证书的脚本任务调用 Web 服务 URL。调用此 URL 后,我们将从 Web 服务获取 WSDL 文件。我们需要使用该 WSDL 文件,我们需要识别此 WSDL 中的方法,并且需要将此 WSDL 中可用的数据写入数据库表。我不知道我们如何通过脚本 tas 调用该 Web 服务 URL(带有证书),我们如何读取 WSDL 文件以及如何将数据加载到数据库表中。

最佳答案

Add the Service reference under ServiceReferences folder, add the System.ServiceModel under Reference folder (this is to use the EndPointAddress class in the script)

在 Main 方法中,使用以下脚本(高级)开始...

 var endPointAddress = new EndpointAddress('http://Server/ServiceName.svc');
//Put your end point address
var basicBinding = new BasicHttpBinding();
basicBinding.Name = "BasicHttpBinding_IService";
//this is the port name, you can find it in the WSDL
ClassServiceClient pay = new ClassServiceClient (basicBinding, endPointAddress);
//this is the class in which the method exists you want to make a service call
IService = pay.YourMethodName();
XMLDocument xmlOut = new XmlDocument();
//This is to store return value from your method
xmlOut.LoadXml(IService);
//Load the xmlOut with the return value
XmlNode xmlNode = xmlOut.SelectSingleNode("ParentElement/ChildElement");
//Search for your element name where you want to get the value
string strValue = xmlNode.InnerText;
//this gives the element value

接下来,使用 DataTable 类,通过创建新行来加载 strValue

DataTable dt = new DataTable();
DataRow dr = dt.NewRow();
dr["ValueToInsertIntoDb"] = strValue;
dr.Rows.Add(dr);

之后将 dt 分配给一个对象变量。

Dts.Variables["User::Values"].Value = dt;

接下来,使用另一个数据流任务,在该任务中使用脚本组件并在 ReadOnlyVariables 中选择变量。在脚本组件中,您必须遍历 DataTable 数据集。这是应该看起来像的代码

 DataTable dt = (DataTable)Variables.Values
foreach (DataRow dr in dt.Rows)
{
ScriptComponentOutputBuffer.AddRow()
ScriptComponentOutputBuffer.Column1 = dr["ValueToInsertIntoDb"].ToString();
}
//ScriptComponentOutputBuffer.Column1 --You need to manually add this column on output columns of your scriptcomponent

接下来,将脚本组件连接到 OLEDB 命令或 OLE DB 目标并将值插入数据库。

关于c# - 通过脚本任务调用 SSIS 中的安全 Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37292239/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com