WSDL服务与证书

问题描述:

我有相同的WSDL服务,我连接VS, 证书,我从服务管理员 和https ADRESS收到的连接。 所以,我需要调用从这个WSDL服务(MigomCommonService)的一种方法,这是我的代码:WSDL服务与证书

  string adress = "https://xxxx.xxx.com/MigomCommonService/MigomCommonPort"; 
      string thumbprint = "xx xx xx xx xx xx xx xx xx xx xx xx xx xx"; 

      WSHttpBinding binding = new WSHttpBinding(); 
      binding.Name = "MigomCommonBinding"; 
      binding.Security.Mode = SecurityMode.Transport; 
      binding.Security.Message.ClientCredentialType = MessageCredentialType.Certificate; 

      EndpointAddress addr = new EndpointAddress(adress); 

      MigomCommonService.MigomCommonPortTypeClient migomClient = new MigomCommonService.MigomCommonPortTypeClient(binding, addr); 
      migomClient.ClientCredentials.ClientCertificate.Certificate = GetCertificate(thumbprint); 

      migomClient.Open(); 

      Session sessionPart = SessionPartRequest(); 
      string requestPart = CountryListRequest(); 
      string response = migomClient.MigomCommonOperation(ref sessionPart, requestPart); 

当我打电话MigomCommonOperation方法我收到认证错误(407),但我可以通过浏览器成功调用这个wsdl服务。 这段代码有什么问题?也许我忘了绑定部分或其他东西的东西?

我想这个链接将解决您的问题。通过HTTPS协议访问WCF端点。 http://www.codeproject.com/Articles/36705/7-simple-steps-to-enable-HTTPS-on-WCF-WsHttp-bindi 您需要认证安装到本地和信任它,然后配置的WCF servicepointmanager这样的:

ServicePointManager.ServerCertificateValidationCallback = 
      new RemoteCertificateValidationCallback(IgnoreCertificateErrorHandler); 
     Service1Client obj = new Service1Client();