我正在考虑将共享(读取静态)WCF代理客户端用于高吞吐量应用程序。我相信这样做可以获得性能提升,但我还没有对此进行基准测试。
这个想法有一些严重的缺陷吗?
从我的研究中我可以看出存在处理故障状态的问题,目前还不清楚这种状态对其他待处理请求的影响是什么。
有没有人有从其故障状态恢复WCF代理的经验?
提前感谢!
答案 0 :(得分:4)
一旦频道处于故障状态,它将保持这种状态。所以是的,我认为静态客户端会有问题。我开始也是这样,但最终为每个电话创建并打开了一个新频道。似乎没有太多的性能权衡。
作为参考,我在另一台四核机器的四核机器上做了大约30-60个每秒请求大约5K-30K的请求。到目前为止,WCF一直表现良好。
答案 1 :(得分:2)
我刚刚发现在代理上调用Close()会阻塞执行[OperationContract(IsOneWay = true)]的单向操作的调用。这也会改变流程。