Wcf 通过https和证书使用WSDL服务

Wcf 通过https和证书使用WSDL服务,wcf,soap,wsdl,certificate,Wcf,Soap,Wsdl,Certificate,我有相同的wsdl服务,在VS中连接, 我从服务管理员处收到的证书 和用于连接的https地址。 因此,我需要从这个wsdl服务(MigomCommonService)调用一个方法,这是我的代码: string adress = "https://xxxx.xxx.com/MigomCommonService/MigomCommonPort"; string thumbprint = "xx xx xx xx xx xx xx xx xx xx x

我有相同的wsdl服务,在VS中连接, 我从服务管理员处收到的证书 和用于连接的https地址。 因此,我需要从这个wsdl服务(MigomCommonService)调用一个方法,这是我的代码:

            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端点。 您需要将证书安装到本地并信任它,然后配置WCF servicepointmanager,如下所示:

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