.net 我应该在需要时使用客户端代理还是在开始时全部打开它们?

.net 我应该在需要时使用客户端代理还是在开始时全部打开它们?,.net,wcf,.net,Wcf,我有一个WCF客户端应用程序,它由大约5个代理组成,它们在应用程序的整个生命周期中都建立自己的连接。客户端运行的持续时间根本不长(小于1分钟) 我最初只是在需要时调用代理上的方法,这似乎减轻了我调用“proxy.Open()”的负担。我猜代理只是在第一次方法调用后自动打开的 现在我想知道,在对代理调用方法之前,是否应该显式地对代理调用“proxy.Open()”?此外,我是否应该在客户端应用程序开始时打开所有这些文件,特别是因为运行时不到1分钟?是否有最佳实践?非常感谢您的帮助。当您的代理将在多

我有一个WCF客户端应用程序,它由大约5个代理组成,它们在应用程序的整个生命周期中都建立自己的连接。客户端运行的持续时间根本不长(小于1分钟)

我最初只是在需要时调用代理上的方法,这似乎减轻了我调用“proxy.Open()”的负担。我猜代理只是在第一次方法调用后自动打开的


现在我想知道,在对代理调用方法之前,是否应该显式地对代理调用“proxy.Open()”?此外,我是否应该在客户端应用程序开始时打开所有这些文件,特别是因为运行时不到1分钟?是否有最佳实践?非常感谢您的帮助。

当您的代理将在多个线程中使用时,最好像本文所述那样显式调用Open。

打开连接很便宜,因此每次创建代理都不会导致重大性能问题

如果异常处理不是100%防弹的,则某些异常会使代理处于故障状态。如果为所有调用保留一个代理,则必须在每次调用之前检查它是否仍然有效。在这种情况下,为每个调用创建新代理可以帮助您

注意:修复异常处理仍然是一项任务


另一方面,如果您的异常处理是健壮的,并且基于FaultException,那么保留一个代理就可以了。

这并不能真正回答我的问题。我想知道在客户端应用程序的短暂生命周期开始时打开所有代理有什么好处——或者我应该仅仅依靠“自动打开”吗。