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

本文关键字:消息 服务 一条 代码 另一个 资源 WCF 有一个 请求 | 更新日期: 2023-09-27 18:10:16

我有一个场景,客户端请求我的服务,然后我的服务(a)请求另一个服务(B),服务(B)返回一个值,服务(a)使用它返回一个值给客户端。我使用多线程来捕捉整个场景。我看过相关的多线程,但不能工作,因为我有多个客户端,将访问相同的服务。谁能给我指个方向吗?亲切的问候。

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

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

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

MSDN有一篇关于会话、实例化和并发的文章,描述了使用这个模型的后果,以及其他选项。

如果你正在使用。net 4.5,你可以通过使用MSDN文章中描述的基于任务的异步模式来避免在等待服务B的响应时锁定服务a中的线程。