WCF多线程调用

时间:2010-04-14 15:19:48

标签: c# wcf

我们开发了一个多线程服务器,它接收来自多个客户端的数据并调用不同的WCF服务。 在许多情况下,两个(或更多)不同的客户端同时调用服务器,服务器尝试同时从两个不同的线程调用远程WCF。 我们遇到了一些问题,尤其是当远程WCF服务关闭时。 我们做得对吗?这种情况有最佳实践吗?

2 个答案:

答案 0 :(得分:2)

大多数情况下的最佳做法是:

  • 您的客户端使用“每次调用”模式调用WCF服务
  • 来自客户端的每个请求都有自己的pristine服务器类实例来处理请求并在完成后被处理
  • 因此,服务器类是单线程的,不可重入的,并且不必处理任何多任务处理问题。
  • 服务器类是无状态的,不会保留任何服务器资源或任何内容
  • 任何“状态”或需要在呼叫之间保持的数据存储在合适的位置,例如,数据库

这是迄今为止最简单的设置,应该是至少80%的案例的最佳选择。

查看Juwal Lovy撰写的这篇优秀MSDN杂志文章Discover Mighty Instance Management Techniques For Developing WCF Apps,了解有关各种选项的更多背景信息。

答案 1 :(得分:0)

您需要更加具体地了解您遇到的问题类型,但您可能希望了解幂等性和有状态服务。