1

我正在尝试使用 wcf 构建一个 http 侦听器(webservice)。此侦听器是更大的桌面应用程序的一部分。此桌面应用程序还调用 http 侦听器。

当监听器接收到数据时,它应该被传递给桌面应用程序。我尝试构建一个httpbinding服务并使用回调机制

[OperationContract(IsOneWay = true)]
void OnDataReceived(Data data);

问题是我需要 wsDualhttpbinding 因为回调。

我真的需要使用 dualhttp 将数据从一个 .NET 应用程序发送到另一个应用程序还是我遗漏了什么?

谢谢

4

3 回答 3

2

是的,您需要双工或双工通信。HTTP 本质上是一个单向协议。客户端必须调用服务器。没有它,服务器无法与客户端交谈。

于 2012-06-18T12:11:39.500 回答
1

如果您使用的是回调机制,而不是轮询机制,那么是的,您需要双重绑定,因为 WCF 服务需要能够发送和接收消息(而不是接收和返回响应)

于 2012-06-18T12:21:24.660 回答
1

您的问题是您有一个作为 WCF 服务公开的事件源。服务实时向其客户端发送事件的唯一方法是通过全双工连接,这意味着使用 duathttp 或 dualtcp 绑定。

但是,使用双工绑定充其量是复杂的。允许客户端订阅服务并在客户端感兴趣的事件发生时接收消息会更简单。

这比双工绑定简单得多,因为客户端和服务之间没有实际的连接,只有异步消息。

虽然 WCF 为 msmq 传输提供绑定,但它不提供具有这种 pub-sub 支持的绑定,因此您可以为此编写代码,也可以使用像NServiceBus这样的开源消息传递总线。

于 2012-06-18T15:17:12.097 回答