我试图使用WCF实现简单的安全客户端服务器通信。 当我启动mt服务器everty的事情是可以的,但当我启动我的客户端即时收到此错误: 错误:向https://localhost:800发出HTTP请求时发生错误 0 / ExchangeService。这可能是由于服务器证书是这样的 在HTTPS情况下,未使用HTTP.SYS正确配置。这也可能是因果关系 由于客户端和服务器之间的安全绑定不匹配而导致的。
这是服务器代码:
Uri address = new Uri("https://localhost:8000/ExchangeService");
WSHttpBinding binding = new WSHttpBinding();
//Set Binding Params
binding.Security.Mode = SecurityMode.Transport;
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.None;
binding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.None;
Type contract = typeof(ExchangeService.ServiceContract.ITradeService);
ServiceHost host = new ServiceHost(typeof(TradeService));
host.AddServiceEndpoint(contract, binding, address);
host.Open();
这是客户端配置(app.config):
</client>
<bindings>
<wsHttpBinding>
<binding name="TradeWsHttpBinding">
<security mode="Transport">
<transport clientCredentialType="None"
proxyCredentialType ="None"/>
</security>
</binding>
</wsHttpBinding>
</bindings>
客户端和服务器上的安全配置是相同的,我不需要服务器的证书在那种安全性(传输)中,为什么我会得到
这个例外????
感谢...
答案 0 :(得分:1)
好好看看你的代码:
Uri address = new Uri("https://localhost:8000/ExchangeService");
您指定地址使用SSL(https),因此需要证书才能实现此目的。使用http绑定或安装证书。
我将查看此CodePlex Link上的应用程序方案和方法部分,了解不同的配置以及如何配置它们的详细信息。
答案 1 :(得分:0)
看一下这篇文章,有一个服务器设置的例子: