您有一个WCF服务/资源。当您收到消息/请求时,您的代码需要向另一个服务发送另一条消息

时间:2015-08-29 07:31:28

标签: c# wcf soap

我有一个场景,客户端请求我的服务然后我的服务(A)请求另一个服务(B),服务(B)返回一个值,服务(A)使用它来向客户端返回一个值。 我正在使用多线程来捕获整个场景。 我看过Rerant多线程,但无法工作,因为我有多个客户端将访问相同的服务。 有人可以指点我的方向。亲切的问候。

1 个答案:

答案 0 :(得分:0)

您可以将服务设置为ConcurrencyMode.MultipleInstanceContextMode.Single,然后在每个单服务器实例中手动处理多线程。

[ServiceBehavior(
    ConcurrencyMode=ConcurrencyMode.Multiple,
    InstanceContextMode = InstanceContextMode.Single)] 
public class BService : IB
{ ... }

MSDN有article on Sessions, Instancing, and Concurrency描述使用此模型的后果以及其他选项。

如果您使用的是.NET 4.5,则可以避免在使用基于任务的异步模式等待来自服务B的响应时锁定服务A中的线程,如this MSDN article中所述。