2012-09-14 57 views
0

我在IIS 7上运行WCF并使用负载均衡的服务器配置。WCF服务不能在SSL下工作

当我们正常运行它时,一切正常,但当我们试图打开SSL时,一切都停止工作。我已经尝试了所有不同的配置设置,如传输和消息web.config但似乎没有工作。

甚至不允许我添加对项目的引用,只是带着关于文档类型的奇怪错误返回。

一切工作正常我们的主要网络服务器,所以我不认为它与数字证书的问题。

+0

您需要更改WCF绑定以允许SSL传输。 你可以发布你的绑定配置吗? 对于通过SSL发布的元数据,还需要更改mex端点绑定和服务行为元数据发布。 – Paciv

+0

您需要更具体地了解您的问题,向我们展示一些代码和配置,告诉我们具体的错误等等(把自己置于我们的位置:很难回答现在的问题)。请注意,您可以随时编辑您的问题! – Jeroen

+0

在我们的测试服务器上,似乎一切正常,并且我正确设置了绑定中的设置。我将与我们的服务器人员谈话,以了解更多关于他如何配置SSL的内容,因为我自己没有这样做 – WillSkills

回答

2

我不知道您正在负载均衡器上使用SSL加速来保存证书。如果你是这个可能会解释错误。

当我们实现负载均衡时,我们的服务器也出现类似的问题。问题是SSL加速会干扰WCF在添加服务引用时拾取引用的方式。

有一篇文章here解释了如何解决问题。它也有图表和内容。

+0

我检查了我的服务器人,他正在负载平衡器上托管数字证书。当我们在测试服务器上安装证书并更改了dns时,它一切正常。我确实有我的httpsGetEnabled仍然设置为http,所以我认为这也有帮助。 – WillSkills

1

看一看这个链接 http://www.codeproject.com/Articles/36705/7-simple-steps-to-enable-HTTPS-on-WCF-WsHttp-bindi

,也看看下面

您必须配置服务使用HTTPS:

<bindings> 
    <basicHttpBinding> 
    <binding name="https"> 
     <security mode="Transport" /> 
    </binding> 
    </basicHttpBinding> 
</bindings> 
<behaviors> 
    <serviceBehaviors> 
    <behavior name="metadata"> 
     <serviceMetadata httpsGetEnabled="true" /> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
<services> 
    <service name="..." behaviorConfiguration="metadata"> 
    <endpoint address="..." contract="..." binding="basicHttpBinding" 
       bindingConfiguration="https" /> 
    </service> 
</services>