我已经编写了一个WCF Web服务供Silverlight应用程序使用。最初,该服务只需要一个基本的http绑定。我们现在需要能够部署该服务以便在http和https下使用。我已经找到了一些web.config的设置,允许我这样做,如下所示:使用http和https绑定/端点部署WCF服务
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="SilverlightFaultBehavior">
<silverlightFaults />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="CxtMappingWebService.CxtMappingWebServiceBehavior">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="True" />
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<basicHttpBinding>
<binding name="SecureHttpBinding">
<security mode="Transport" />
</binding>
<binding name="BasicHttpBinding">
<security mode="None" />
</binding>
</basicHttpBinding>
</bindings>
<services>
<service name="CxtMappingWebService.CxtMappingWebService" behaviorConfiguration="CxtMappingWebService.CxtMappingWebServiceBehavior">
<endpoint address="" bindingConfiguration="SecureHttpBinding" binding="basicHttpBinding" contract="CxtMappingWebService.ICxtMappingWebService" behaviorConfiguration="SilverlightFaultBehavior" />
<endpoint address="" bindingConfiguration="BasicHttpBinding" binding="basicHttpBinding" contract="CxtMappingWebService.ICxtMappingWebService" behaviorConfiguration="SilverlightFaultBehavior" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>
不幸的是,这有一个问题。
此Web服务需要部署到数百位客户的服务器,而不是所有的服务器都将使用https。将它部署到没有在IIS中设置的https绑定的服务器会导致它失败。如果没有在IIS中设置https绑定,是否有一种方法可以在缺省情况下在web.config中同时拥有这两个绑定?
我们已经为此问题提供了一个可能的解决方案,但它并不能真正适合我们的部署要求。
以前有没有其他人遇到过这样的事情,你是如何解决它的?
什么是*** silverlightFaults ***? – Kiquenet 2016-04-29 11:01:36