Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 客户端如何使用负载平衡的WCF服务_.net_Wcf - Fatal编程技术网

.net 客户端如何使用负载平衡的WCF服务

.net 客户端如何使用负载平衡的WCF服务,.net,wcf,.net,Wcf,我有一个承载在负载平衡场景中的WCF服务。该服务使用IIS托管。有两台服务器是负载平衡的 以下是服务器中的端点。 我将主机基址保持为 baseAddress=" https://test-LoadBalanced.myCompany.com/MyService". 此主机基址来自负载平衡地址 当我输入时,我可以得到服务页面。在这里面,有时我会得到服务器A盒的端点地址和服务器B盒的端点地址的wsdl链接 参考 问题的答案是 在IIS上承载WCF服务时,基址只能是.svc文件的URL 以下是来

我有一个承载在负载平衡场景中的WCF服务。该服务使用IIS托管。有两台服务器是负载平衡的

以下是服务器中的
端点。

我将主机基址保持为

baseAddress=" https://test-LoadBalanced.myCompany.com/MyService". 
此主机基址来自负载平衡地址

当我输入时,我可以得到服务页面。在这里面,有时我会得到服务器A盒的端点地址和服务器B盒的端点地址的wsdl链接

参考

问题的答案是

在IIS上承载WCF服务时,基址只能是.svc文件的URL

以下是来自

客户不知道该服务的基址,也不需要在他们的线路上支持类似的东西。因此,在客户端对象模型或配置部分中找不到任何与基址相关的内容。客户端只需选择一个特定的端点,该端点总是配置有一个绝对地址,并且该绝对地址决定了它在传输期间将使用的地址

默认情况下,BasicHttpBinding在消息中发送一个连接HTTP头,该头带有一个Keep-Alive值,这使客户端能够建立到支持它们的服务的持久连接。此配置提供了增强的吞吐量,因为可以重用以前建立的连接,以便将后续消息发送到同一服务器。但是,连接重用可能会导致客户端与负载平衡场中的特定服务器紧密关联,从而降低循环负载平衡的有效性。如果此行为不受欢迎,则可以使用带有CustomBinding或用户定义绑定的KeepAliveEnabled属性在服务器上禁用HTTP保持活动

客户端

我使用负载平衡地址创建了一个客户端。但是,在客户端配置中,端点地址是服务器的一个框的地址;不是负载平衡地址

问题


那么,客户机如何利用负载平衡性能优势呢?为了获得服务操作,它将始终访问服务器A,不是吗?

更改客户端的代码/配置,使其指向服务的负载平衡端点

基址是服务器唯一关心的问题。它为您提供了一种指定所有其他相对URI所基于的基本URI的方法

如果您的客户端向负载平衡器发送HTTP消息,它们将被转发到服务器。为此,只需使用服务的负载平衡器配置您的客户端


在服务器上禁用HTTP
keep alive
也可能是明智的,这样可以防止客户端与LB后面的服务器形成粘性关系。

WSDL仅在客户端应用程序的设计时使用。一旦向导创建了所有客户端类,您就可以将客户端应用程序指向负载平衡器