WCF代理池-值得吗?

WCF代理池-值得吗?,wcf,pooling,Wcf,Pooling,共享WCF代理客户端真的值得吗,还是在每次调用给定方法时实例化一个新代理更好 顺便问一下,是否有人愿意共享这种代理的池模式?缓存ChannelFactory是值得的,因为它的构建成本很高。通过添加服务引用(或直接使用svcutil.exe生成的代理)在某些情况下会执行此操作(如果要使用此缓存,通常不能在代码中生成绑定)。如果您手动构建ChannelFactory(您不使用生成的代理),则您可以将其存储在某个位置,而不是在每次需要时对其进行初始化 共享代理可能没有多大意义。对于无状态服务,代理创建

共享WCF代理客户端真的值得吗,还是在每次调用给定方法时实例化一个新代理更好


顺便问一下,是否有人愿意共享这种代理的池模式?

缓存
ChannelFactory
是值得的,因为它的构建成本很高。通过添加服务引用(或直接使用
svcutil.exe
生成的代理)在某些情况下会执行此操作(如果要使用此缓存,通常不能在代码中生成绑定)。如果您手动构建
ChannelFactory
(您不使用生成的代理),则您可以将其存储在某个位置,而不是在每次需要时对其进行初始化

共享代理可能没有多大意义。对于无状态服务,代理创建应该很快(如果您有缓存工厂)。对于statefull服务,您不希望在多个“客户端”之间共享代理。连接级别本身也有池。默认情况下,HTTP绑定使用称为持久连接的东西。这些连接可以被多个代理重用。Net.tcp和Net.pipe绑定使用。这意味着代理的生存期不必与连接的生存期相同。

如果您想了解其内部结构,这有一些关于WCF.NET 3.5性能改进的好信息。