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