2011-03-16 56 views
0

連接到網絡的服務,我有我試圖轉換到使用WCF一個ASMX客戶端應用程序。所以我添加了一個服務參考,它給了我一個SoapClient類。我的舊代碼使用從System.Web.Services.Protocols.SoapHttpClientProtoco升派生的類,它有兩個特性。網址和ClientCertificates。我在WCF世界中獲得的這個SoaClient類中是否有任何等價物?轉換舊代碼使用WCF

回答

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服務配置編輯器來設置配置文件;這使重新配置服務變得更容易(不需要更改代碼)。