C# 在负载平衡器和SSL后面配置WCF

C# 在负载平衡器和SSL后面配置WCF,c#,web-services,wcf,https,wsdl,C#,Web Services,Wcf,Https,Wsdl,这个问题的各种各样的问题都被问到了,通过这些问题,我可以得到90%的配置,但我仍然有一些问题。我的设置如下所示: (http://server1) ---------------- --> -- webserver1 -- / --------

这个问题的各种各样的问题都被问到了,通过这些问题,我可以得到90%的配置,但我仍然有一些问题。我的设置如下所示:

                                (http://server1)
                                 ----------------
                            -->  -- webserver1 --
                           /     ----------------
                          /
 (https://externaldomain)/
 ---------------------- /
 --- load balancer ---- 
 ---------------------- \
                         \
                          \
                           \     (http://server2)
                            -->  ----------------
                                 -- webserver2 --
                                 ----------------
我已经详细说明了

 <useRequestHeadersForMetadataAddress>
    <defaultPorts>
      <add scheme="https" port="443" />
    </defaultPorts>
  </useRequestHeadersForMetadataAddress>
---------编辑-----------

使用HTTP传输进行端点下载的问题对我来说有点“愚蠢”。在端点的绑定中,我指定:

<httpTransport maxReceivedMessageSize="2147483600" decompressionEnabled="true" />

将此更改为
httpsTransport
会添加带有https传输的服务引用,但客户端应用程序随后无法到达端点。由于负载平衡器通过http进行通信,因此传输必须保持http。我可以使用https绑定指定第二个端点,但这太麻烦了


不过,我仍然没有解决wsdl问题。

我过去也做过类似的事情。我有一个基于sql的路由表来选择“路由到”(R2)服务器(webserver1,webserver2)。因此,我的负载平衡器拾取消息,然后根据消息中的一些值选择一个R2服务器,并将其传递(在R2上调用web服务)到R2服务器

SOAP在消息头中维护安全信息。(). 所以我所做的是,一旦消息到达负载平衡器,我就创建了一个新的消息实例,并将传入消息中的所有属性分配给新消息。这意味着新消息的标题将与传入消息的标题不同。这意味着我们应该能够将新消息发送到http


R2服务器处理该消息并向负载平衡器发送确认。最后,负载平衡器将确认信息传递给客户端。需要注意的最重要一点是负载平衡器和R2服务器应该具有相同的wsdl。让我们知道您是如何处理的。

那么您到底有什么问题?如何为WCF服务配置SSL?这个问题应该有一个“ASCII模式艺术家”徽章,我刚刚注意到,您的负载平衡器是
https
。但是web服务器是
http
。您将使用哪种路由方法?@KosalaW负载平衡器是一种终止SSL的F5。我认为基础设施人员是这样设置的,这样证书就不需要出现在所有的web服务器上。您是否与基础设施人员联系,在F5中编写iRules以保持方案为https,即使SSL被卸载,以便https在应用程序的url中保持一致?
<httpTransport maxReceivedMessageSize="2147483600" decompressionEnabled="true" />