每个方法调用的WCF CreateChannel

All*_*lay 6 wcf

在我当前的Web项目中,我们为每个远程服务的方法调用执行ClientFactory.CreateChannel.

这真的有必要吗?什么是最佳做法?

Ste*_*ger 2

这在某种程度上取决于您的要求。相对而言,开设渠道的成本很高。最佳实践是让执行远程调用的类实现 IDisposable,它应该调用一次 ClientFactory.CreateChannel,在所有方法调用中使用通道,并在调用 Dispose 方法时关闭通道。也就是说,如果调用远程服务的方法之间的时间很长(比通道上默认空闲超时 10 分钟更长),那么执行 ClientFactory.CreateChannel 并不是特别有害,但我想说最好还是采用 IDisposable 路线并使用 'using' 关键字封装类的使用