我使用以下配置制作了WCF服务:
<!-- This is the binding for SSL-->
<wsHttpBinding>
<binding name="SSLBinding">
<security mode="Transport" >
<transport clientCredentialType="None" ></transport>
</security>
</binding>
</wsHttpBinding>
<!-- SSL Binding Ends here.-->
</bindings>
<behaviors>
<serviceBehaviors>
<!-- This is the behavior we have defined for SSL configuration-->
<behavior name="SSLBehavior">
<serviceMetadata httpsGetEnabled="True"/>
</behavior>
<!-- SSL Behavior Ends here -->
</serviceBehaviors>
</behaviors>
<services>
<!-- Service configured alongwith its Mex Endpoint-->
<service name="CalculatorService.Service1" behaviorConfiguration="SSLBehavior">
<endpoint contract="CalculatorService.IService1" name="SSLAddress" binding="wsHttpBinding" bindingConfiguration="SSLBinding"></endpoint>
<endpoint name="mex" binding="mexHttpsBinding" contract="IMetadataExchange"></endpoint>
</service>
</services>
<serviceHostingEnvironment multipleSiteBindingsEnabled="false" />
我使用以下教程在IIS 5.1上的WCF服务上托管SSL http://www.codeproject.com/Articles/36705/7-simple-steps-to-enable-HTTPS-on-WCF-WsHttp-bindi
我收到错误
A binding instance has already been associated to listen URI
'https://wd-xpa7kyy12d3.XXXX.com/CalculatorService/Service1.svc'. If two endpoints want to share the same ListenUri, they must also share the same binding object instance. The two conflicting endpoints were either specified in AddServiceEndpoint() calls, in a config file, or a combination of AddServiceEndpoint() and config.
在名为“SSLAddress”的端点中,我将“地址”添加为“https://wd-xpa7kyy12d3.XXXX.com/CalculatorService/Service1.svc”,但无法使用此URL添加服务引用,并且必须具体给出WSDL路径。
即使在提供WSDL路径并成功向控制台应用程序添加服务引用之后,当客户端代理执行方法时,也会出错。所以我从端点删除了地址属性,现在问题就来了。我不确定当前配置有什么问题?谢谢你的帮助。
答案 0 :(得分:1)
尝试添加
address="mex"
到元数据端点。 指定的地址最终成为相对路径,因此将给出
https://wd-xpa7kyy12d3.XXXX.com/CalculatorService/Service1.svc/mex
作为地址。另一个端点将保留在
https://wd-xpa7kyy12d3.XXXX.com/CalculatorService/Service1.svc