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
重复使用WCF服务客户端还是每次创建一个?_Wcf_Web Services_Client - Fatal编程技术网

重复使用WCF服务客户端还是每次创建一个?

重复使用WCF服务客户端还是每次创建一个?,wcf,web-services,client,Wcf,Web Services,Client,我听到(并读到)很多关于哪个更好的意见:重用WCF服务客户端还是每次创建一个。但我始终无法理解在这些情况下到底发生了什么。除了意见之外,我真的没有找到什么“官方”的东西(比如msdn页面上说哪个更好,为什么更好,什么时候更好) 在开发自己的应用程序时,每次创建(和关闭)一个应用程序时,我很少遇到问题(创建和关闭过程没有增加处理时间,甚至一秒钟也没有)。但在少数情况下,重用WCF服务客户端确实带来了变化(以一种好的方式)。这些都是我在实践中观察到的,没有真正的逻辑动机 那么,谁能确切地向我解释一下

我听到(并读到)很多关于哪个更好的意见:重用WCF服务客户端还是每次创建一个。但我始终无法理解在这些情况下到底发生了什么。除了意见之外,我真的没有找到什么“官方”的东西(比如msdn页面上说哪个更好,为什么更好,什么时候更好)

在开发自己的应用程序时,每次创建(和关闭)一个应用程序时,我很少遇到问题(创建和关闭过程没有增加处理时间,甚至一秒钟也没有)。但在少数情况下,重用WCF服务客户端确实带来了变化(以一种好的方式)。这些都是我在实践中观察到的,没有真正的逻辑动机

那么,谁能确切地向我解释一下哪种方式更好?
在什么情况下?这取决于客户端加载?在IIS上使用Web Garden将影响选择?

Microsoft建议为客户端创建缓存:(查看“需要考虑的问题”部分)

在WCF的初始版本中,创建通道工厂时存在性能问题,因此每次创建客户端都会导致性能问题。我们必须创建和缓存通道工厂。Microsoft通过更新(.NET Framework SP1?)修复了此问题,不再需要缓存

基本上,修复后的性能差异可以忽略不计,特别是考虑到您正在通过网络进行呼叫