gpt4 book ai didi

c# - 具有重复调用的 WCF channel 生命周期

转载 作者:行者123 更新时间:2023-11-30 16:35:14 24 4
gpt4 key购买 nike

也许这是一个显而易见的问题,也许不是。想象一个 GUI 控制应用程序,其中每次按下按钮都会调用远程 WCF 服务上的不同功能。按钮的使用频率大约每隔几秒一次。一般来说,最好是在每次函数调用时打开和关闭 WCF channel ,还是在应用程序的生命周期内保持 channel 打开?当然假设这个应用程序只有几个实例化。

注意。这个问题实际上与示例无关,而是帮助我了解这里的最佳实践。

最佳答案

如果您可以避免在每次调用之前重新创建客户端代理,那肯定会对您的性能有益。

但是这样做,您必须确保服务器端的所有异常都得到正确处理(可能通过在您的服务上实现 IErrorHandler 接口(interface))并转化为SOAP 故障,可以在不造成 channel 故障的情况下将其传输回客户端。

如果您逃脱了一个异常,并作为“常规”.NET 异常发送回客户端,则 channel (您的客户端和服务器之间的通信链路)将出现故障 - -> 即变得无用。

在这种情况下,您需要先检查该状态( channel 具有 .State 属性),如果遇到故障 channel ,除了重新创建外,您无能为力在调用方法之前再次代理客户端。

关于c# - 具有重复调用的 WCF channel 生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2010987/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com