如何在 azure wcf 中继中处理双工 wcf

Posted

技术标签:

【中文标题】如何在 azure wcf 中继中处理双工 wcf【英文标题】:How to handle duplex wcf in azure wcf relay 【发布时间】:2018-01-30 06:26:02 【问题描述】:

我有一个工作正常的双工 wcf 服务,但我知道我想使用 azure wcf-relay 的功能来连接客户端和服务。我让它与我所有的其他服务一起工作我唯一的问题是双工服务,因为它有一个回调,我不知道我应该做什么,如何使用 azure wcf 中继来实现它。

例子:

 [ServiceContract(CallbackContract = typeof(IViewerManagerCallback), Name = "IViewerManager", Namespace = "http://samples.microsoft.com/ServiceModel/Relay/")]
public interface IViewerManager

    [OperationContract]        
    [FaultContract(typeof(OperationFaultData))]
    ViewLayout GetViewLayout(int viewId);

【问题讨论】:

【参考方案1】:

根据Microsoft.ServiceBus namespace中提供的类,我们可以发现Azure Relay WCF 中继只提供了两种类型的ws-bindings。 WSHttpRelayBinding 和 WSHttpRelayBinding。我找不到为 Azure WCF 中继实现 WSDualHttpBinding 类似功能的类。 Azure WCF 中继目前可能不支持它。我建议您在Azure feedback site 上提交反馈,用于发布想法或建议。

【讨论】:

感谢您的回答。我使用 DuplexChannelFactory 打开创建并打开通道。它帮助我解决了问题,但不幸的是我仍然遇到一些延迟问题。 感谢分享您的解决方案。

以上是关于如何在 azure wcf 中继中处理双工 wcf的主要内容,如果未能解决你的问题,请参考以下文章

Azure 服务总线中继偶发性故障异常

在双工绑定 WCF 应用程序中处理丢弃的客户端

如何在双工回调中读取 WCF 消息头?

在 WCF 双工合同中检测客户端死亡

WCF:OneWay OperationContract 上的异常处理

防止 WCF 双工回调服务出现死锁问题