Visual Studio - C#脚本任务错误(SSIS)

时间:2016-12-18 14:08:50

标签: c# visual-studio soap ssis

我想知道是否有人遇到过同样的错误,如果有的话,可以指出我正确的方向尝试修复它。错误如下:

值不能为空。参数名称:key。

似乎这个错误可能源于许多不同的事情。

我正在尝试将从CSV文件中读取的数据发送到SOAP Web服务。下面是我在脚本任务中使用的代码:

BasicHttpBinding CostCenterSoap = new BasicHttpBinding(BasicHttpSecurityMode.Transport);
EndpointAddress remoteAddress = new EndpointAddress("https://example.com/services/CostCenter.asmx");
CostCenterSoapClient client = new CostCenterSoapClient(CostCenterSoap, remoteAddress);

CostCenterProperties[] costcenters = new CostCenterProperties[list.Count];

for (var c = 1; c < list.Count; c++) {
  costcenters[c] = new CostCenterProperties
  {
    InteropID = list[c].CostCenter,
    CompanyInteropID = companyInteropID,
    Name = list[c].CostCenter,
    Description = list[c].CostCenter
  };

  try
  {
      client.Save(CostCenters: costcenters, SharedSecret: sharedSecret);
  }
  catch (Exception e)
  {
      errorList.Add(e.Message);
      MessageBox.Show("Errors from adding cost center: " + e.Message);
  }
}

更令人困惑的是,这个相同的逻辑对另一个脚本任务中的另一个Web服务完全正常。使用SoapUI进行测试时,我可以很好地将数据传递给Web服务,因此问题必须存在于我的脚本中。

StackTrace中的错误截图:

Added screenshot of error.

这是我的app.config文件,它是我的脚本任务的一部分:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.net>
    <defaultProxy useDefaultCredentials="true">
      <proxy usesystemdefault="True" bypassonlocal="True"/>
    </defaultProxy>
  </system.net>
  <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="CostCenterSoap">
          <security mode="Transport" />
        </binding>
      </basicHttpBinding>
    </bindings>
    <client>
      <endpoint address="https://www.example.com/services/CostCenter.asmx"
      binding="basicHttpBinding" bindingConfiguration="CostCenterSoap"
      contract="CostCenterService.CostCenterSoap" name="CostCenterSoap" />
    </client>
  </system.serviceModel>
</configuration>

0 个答案:

没有答案