从控制台应用程序通过HTTPS/SSL消费WCF服务
我有一个在IIS下运行的WCF服务,该服务配置为使用SSL,并且已经安装并运行了有效证书。 访问该网站与从控制台应用程序通过HTTPS/SSL消费WCF服务
https://my_website/anypage.aspx
我可以访问该页面。 访问URL
https://my_website/mywcfservice.svc
我可以看到web服务页面: “你已经创建了一个服务来测试这项服务,你需要创建一个客户端,并使用它来调用服务(...) ”。请注意,无论如何,我仍然收到警告页面,显示“此网站的安全证书有问题”,点击“继续访问此网站”。
在服务器端,在web.config配置有:
<security mode="Transport">
<transport clientCredentialType="None" />
</security>
... ...
在客户端,我不使用代理或配置文件。我只使用代码连接,如:
this.Channel = new ChannelFactory<T>(binding, new EndpointAddress(serviceUri));
((WSHttpBinding)this.Channel.Endpoint.Binding).Security.Mode = SecurityMode.Transport;
((WSHttpBinding)this.Channel.Endpoint.Binding).Security.Transport.ClientCredentialType = HttpClientCredentialType.None;
this.Channel.CreateChannel();
我有强烈的规则,从客户端的代码连接,所以我不能用其他的方式。渠道很好打开,但当我打电话给任何方法时,我收到错误“根据验证程序,远程证书无效。”
没有https工作正常。
在客户端,我在“受信任的根证书颁发机构\证书”中拥有许多证书。所有这些在服务器端也是可信的。
哪里可能是问题,在客户端或服务器端? 也许我需要指定一个非常精确的证书在客户端使用?
任何帮助感谢,谢谢。
请注意,无论如何,我仍然会收到警告页面,显示“该网站的安全证书有问题”,点击“继续访问本网站”。
您的客户机不信任您在服务器上使用的SSL证书。您收到的WCF错误等同于您尝试在浏览器中访问该服务时收到的消息。
在客户端,我在“受信任的根证书颁发机构\证书”中拥有许多证书。所有这些在服务器端也是可信的。
您需要配置您的客户机以正确信任您的SSL证书。一旦您可以在浏览器中访问该服务而无任何错误,您的客户端代码应该可以正常工作。
谢谢你,现在正在工作! – user810917 2012-07-20 10:43:08
选中此http:// stackoverflow。com/questions/9058096/how-to-call-default-certificate-check-when-overriding-servicepointmanager-se – iSamnium 2012-07-19 17:57:36