这是我的解决方案
我添加了服务参考,而不是 Web 参考
通过右键单击“解决方案资源管理器”中的引用 -> 选择“添加服务引用” -> 粘贴地址(http://www.ibanbic.be/IBANBIC.asmx) -> 单击“开始”按钮 - 然后'好的'
我在代码中添加了以下参考
using MYSCRIPTCOMPONENT.ServiceReference1;
using System.ServiceModel;
using System.Net.Http;
更新
这就是我的代码的样子:
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
using (var client = ScriptMain.CreateWebServiceInstance())
{
Row.BankIBAN = client.BBANtoIBANandBIC(Row.AccountNum_IsNull ? "" : Row.AccountNum).ToString();
}
}
internal static SC_MYSCRIPTCOMPONENT.ServiceReference1.BANBICSoapClient CreateWebServiceInstance()
{
BasicHttpBinding binding = new BasicHttpBinding();
// I think most (or all) of these are defaults--I just copied them from app.config:
binding.Security.Mode = BasicHttpSecurityMode.None;
binding.SendTimeout = TimeSpan.FromMinutes(1);
binding.OpenTimeout = TimeSpan.FromMinutes(1);
binding.CloseTimeout = TimeSpan.FromMinutes(1);
binding.ReceiveTimeout = TimeSpan.FromMinutes(10);
binding.AllowCookies = false;
binding.BypassProxyOnLocal = true;
binding.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;
binding.MessageEncoding = WSMessageEncoding.Text;
binding.TextEncoding = System.Text.Encoding.UTF8;
binding.TransferMode = TransferMode.Buffered;
System.Net.ServicePointManager.Expect100Continue = false;
binding.UseDefaultWebProxy = true;
return new SC_MYSCRIPTCOMPONENT.ServiceReference1.BANBICSoapClient(binding, new EndpointAddress("http://www.ibanbic.be/IBANBIC.asmx"));
}
编辑
运行我的包时出现错误,它说:
基础连接已关闭:连接意外关闭。
我添加了这行代码(在我的 CreateWebServiceInstance 方法中):
System.Net.ServicePointManager.Expect100Continue = false;
概括
- 我添加了一个服务参考 - 如此处所述。[堆栈溢出]
- 我添加了设置绑定的代码 - 如此处所述。[堆栈溢出]
- 我添加了一行来修复“连接已关闭”-错误-如 MSDN 上提供的那样。