我有一个ASMX客户端应用程序,我试图转换为使用WCF。所以我添加了一个服务引用,它给了我一个SoapClient
类。我的旧代码使用的是一个派生自System.Web.Services.Protocols.SoapHttpClientProtoco
l的类,它有两个属性。网址和ClientCertificates
。我在WCF世界中获得的SoaClient类中是否有相应的这些?
答案 0 :(得分:1)
与Url属性等效的是端点地址,您可以通过代理对象的constructor或通过配置(使用WCF服务配置编辑器编辑配置)来设置端点地址。对于ClientCertificates,请使用代理对象的ClientCredentials属性。
以下是一些示例代码,可帮助您入门。
BasicHttpBinding basicHttpBinding = new BasicHttpBinding(BasicHttpSecurityMode.Transport);
basicHttpBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;
System.ServiceModel.Channels.Binding binding = basicHttpBinding;
MyServiceSoapClient myService =
new MyServiceSoapClient(binding, new EndpointAddress(url));
myService.ClientCredentials.ClientCertificate.Certificate = new X509Certificate2(Certificate);
所有这些也可以通过配置而不是代码来完成,使用WCF服务配置编辑器来设置配置文件;这使得重新配置服务变得更加容易(不需要更改代码)。