WCF双工请求时延

WCF双工请求时延,wcf,Wcf,我有一个基于WCF的简单酒吧/酒吧服务。服务器端界面如下图所示: [ServiceBehavior(UseSynchronizationContext = false, InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple)] public class RDFService : IRDFService { public Guid Register(string r

我有一个基于WCF的简单酒吧/酒吧服务。服务器端界面如下图所示:

[ServiceBehavior(UseSynchronizationContext = false, InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple)]
public class RDFService : IRDFService
{
 public Guid Register(string ric)
 public void Unregister(Guid guid)
}
客户端回调接口:

  [CallbackBehavior(ConcurrencyMode = ConcurrencyMode.Multiple)]
internal class ServiceCallback : IRDFCallBack
{
 // [OperationContract(IsOneWay = true)]
 public void UpdateSignal(Guid guid, string ric, MarketFeedData data, MarketDataMessageType type)
}
客户端是一个双赢的项目

处理逻辑如下: 如果客户机接收到UpdateSignal请求,则使用处理方法,客户机将调用以自行注销该请求

通常,UpdateSignal和unre方法几乎不需要时间。但是,当大量(8-10)的UpdateSignal请求同时发送到客户端时,会有1-3秒之间的显著延迟。我打开了跟踪,发现时间保留在Unregister service方法调用上:


如图所示,活动3和4之间有2秒的延迟。原因可能是什么?谢谢。

您如何主持您的服务?它会受到限制的影响吗?您是否处理服务器实现上的客户端的任何状态,这些状态要求您使用“Lock”语句来保证线程安全操作?根据您使用它的方式,锁定可能会延迟整个发布管道。