Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.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
Asp.net IIS与负载平衡_Asp.net_Wcf_Http_Iis_Load Balancing - Fatal编程技术网

Asp.net IIS与负载平衡

Asp.net IIS与负载平衡,asp.net,wcf,http,iis,load-balancing,Asp.net,Wcf,Http,Iis,Load Balancing,如果我想负载平衡我的WCF服务,标准建议是。换句话说,请确保“保持活动”未处于活动状态 如果我希望每个请求都得到适当的平衡,并且我不介意每次调用时重新创建连接所需的延迟的微小增加,那么这是很好的 然而,在我的例子中,我实际上希望避免额外的延迟——并且我不介意通过平衡器的重复请求是否“粘滞”到一台服务器。相反,我只是希望能够从平衡组中删除其中一台服务器,并允许连接优雅地过渡到其他服务器 为了实现这一点,我需要一些方法,以便在请求仍在进行时取消激活“保持活动”。最好使用WCF消息检查器,当发出信号时

如果我想负载平衡我的WCF服务,标准建议是。换句话说,请确保“保持活动”未处于活动状态

如果我希望每个请求都得到适当的平衡,并且我不介意每次调用时重新创建连接所需的延迟的微小增加,那么这是很好的

然而,在我的例子中,我实际上希望避免额外的延迟——并且我不介意通过平衡器的重复请求是否“粘滞”到一台服务器。相反,我只是希望能够从平衡组中删除其中一台服务器,并允许连接优雅地过渡到其他服务器

为了实现这一点,我需要一些方法,以便在请求仍在进行时取消激活“保持活动”。最好使用WCF消息检查器,当发出信号时,它会在回复中添加一个“Connection:close”头。不幸的是,这也许是不可能的

因此,我的下一个选择是调整IIS配置。当我的应用程序仍在处理飞行中的请求时,我会调整相关网站的“Http响应头”中的设置。在那里,你有可能找到你

棒极了,除了一件事:更改任何配置都会导致应用程序域和我的应用程序卸载。当我这样做时,IIS非常友好,允许现有的飞行中连接正常地释放,并且下一个绑定请求会导致应用程序域再次加载。所有后续处理现在都将在回复中发送“连接:关闭”

因此,进行配置更改不会损害绑定内请求,但我可能会违反请求处理的SLA,因为重新加载应用程序域所需的时间太长

简而言之,我只想找到一种方法来取消激活HTTP持久性连接,而不会导致应用程序域卸载和重新加载

如果有人能解释如何克服IIS在“连接”HTTP头上强制实施的“覆盖”行为,我将很高兴有一个自定义WCF消息检查器来处理这个问题