如何处理WCF中的可重入调用模式?

时间:2010-09-01 14:41:27

标签: .net wcf design-patterns

想象一下包含订阅者列表的双工WCF服务。在某些时候,服务将数据发送给所有订户,其中一些订户可能会立即再次呼叫该服务。该服务的ConcurrencyMode是Single,因此该调用失败并出现异常。

我想避免这种例外,并找到两种可能的解决方案:

  1. 将ConcurrencyMode更改为Reentrant甚至Multiple。这需要内部同步,所以我宁愿避免它。
  2. 确保客户端等待来自服务器的呼叫完成后再次呼叫。这需要在客户端进行一些缓冲,但我可能仍然会选择它。
  3. 您如何看待这些想法?还有其他方法吗?你是怎么解决的?

1 个答案:

答案 0 :(得分:0)

我建议你阅读Juval Lowy的Programming WCF Services第8.2章。它涉及重入问题以及如何设计可重入性,因为可能存在一些问题。