<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="DataSoap" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
<security mode="Transport" />
</binding>
</basicHttpBinding>
<customBinding>
<binding name="CustomBinding_GetData">
<binaryMessageEncoding />
<httpsTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" />
</binding>
</customBinding>
</bindings>
<client>
<endpoint address="https://localhost/MyApp.Web/Webservice/Data.asmx"
binding="basicHttpBinding" bindingConfiguration="DataSoap"
contract="ServiceReference1.DataSoap" name="DataSoap" />
<endpoint address="https://localhost/MyApp.Web/Webservice/GetData.svc"
binding="customBinding" bindingConfiguration="CustomBinding_GetData"
contract="GetData.GetData" name="CustomBinding_GetData" />
</client>
</system.serviceModel>
大家好,上面是我的silverlight应用程序ServiceReferences.ClientConfig文件。该站点配置为通过https访问。从上面的文件,我想我已经正确配置了一切。我可以成功地从本地开发环境浏览我的服务,但在我的QA环境中部署应用程序后,浏览到该服务会给我以下错误。
无法找到与绑定CustomBinding的端点匹配方案https的基址。注册的基地址方案是[http]。
任何我为什么仍然选择http作为注册的基地址方案只选择QA但不在我的本地开发环境中?
修改 @Brian,谢谢你的回复,让我给你更多的信息,以防它给出一个清晰的图片。
该站点配置为SSL,但SSL证书安装在我无权访问的负载均衡器上。 现在从错误消息,似乎我必须在IIS中配置主机标头和安全站点绑定,但是当从负载均衡器安装和管理SSL证书时,我真的可以从IIS执行此操作吗?
IT看起来像https绑定是缺少的,因为我可以从我的开发机器重现完全相同的错误消息,如果我暂时删除我在此链接后创建的https绑定。
http://weblogs.asp.net/scottgu/tip-trick-enabling-ssl-on-iis7-using-self-signed-certificates。
因此,我认为我需要在负载均衡器上而不是在IIS中使用https绑定,因为该站点在IIS中没有自己的SSL证书吗?
答案 0 :(得分:1)
我遇到了这个问题。基本上,与证书关联的URL标识与它所来自的网站的URL不匹配...至少这是我的问题。
我能够通过专门设置(在代码中)System.ServiceModel.EndPointIdentity到我连接的URL来解决此客户端安全检查。
有一个CreateDNSIdentity()函数,您可以向其提供您正在访问的网站的URL。
我不确定如何在不使用代码的情况下配置它。
String sFullURL = "http://MyDNSServer:8001/SomeService"
String sDNS = "MyDNSServer";
System.ServiceModel.EndpointAddress Endpoint;
System.ServiceModel.EndpointIdentity Identity = default (System.ServiceModel.EndpointIdentity);
Identity = System.ServiceModel.EndpointIdentity.CreateDnsIdentity(sDNS);
EndPoint = new System.ServiceModel.EndpointAddress(new Uri(sFullURL), Identity);
<强>更新强> 好的,假设你有一个Web服务,这个Web服务的公共地址是IP https:// 10.134.116.161:8001/MyService。下面的证书将通过客户端证书验证检查,您不会收到错误。但是,如果下图中显示的此证书部署在公共URL https:// XZYCorp:8001 / MyService上,您将收到该错误。因此,您需要覆盖客户端证书验证检查或更改LB上的证书。