C# 为什么需要wcf双工?

C# 为什么需要wcf双工?,c#,wcf,wcf-binding,C#,Wcf,Wcf Binding,WCF duplex在服务器上运行方法后执行回调,然后在客户端上运行代码 如果我想通过按下服务器上的按钮在客户端上从服务器上执行一个方法,那么我认为WCF duplex是不合适的 为什么我不在我的两个应用程序的每一端创建一个客户端和一个服务器呢?WCF Duplex是在发布/订阅设置(也称为发布/订阅)时使用的。假设您有一个订阅某种通知(例如新电子邮件)的服务。通常,您需要定期检查更新。使用WCF Duplex,发布者可以在有更新时自动通知订阅者。WCF Duplex用于发布/订阅设置(也称为发

WCF duplex在服务器上运行方法后执行回调,然后在客户端上运行代码

如果我想通过按下服务器上的按钮在客户端上从服务器上执行一个方法,那么我认为WCF duplex是不合适的


为什么我不在我的两个应用程序的每一端创建一个客户端和一个服务器呢?

WCF Duplex是在发布/订阅设置(也称为发布/订阅)时使用的。假设您有一个订阅某种通知(例如新电子邮件)的服务。通常,您需要定期检查更新。使用WCF Duplex,发布者可以在有更新时自动通知订阅者。

WCF Duplex用于发布/订阅设置(也称为发布/订阅设置)。假设您有一个订阅某种通知(例如新电子邮件)的服务。通常,您需要定期检查更新。使用WCF Duplex,发布者可以在有更新时自动通知订阅者。

我是对您上一个问题发表评论的人之一,因此我可能欠您一个答案:o)

你已经发布了相当多的代码,而我还没有详细研究它。但是,一般来说,使用wsDualHttpBinding和双工契约,而不是在双方都有服务的对等方法,有一个原因,如下所示:

双工方法适用于具有明确定义的永久运行的服务器的情况。这提供了交互的中心。其思想是,客户端在某种程度上比服务器更为短暂。客户端可以启动和关闭或移动位置,服务器无需提前知道它们。当客户端启动时,它被预先配置为知道服务器在哪里,因此它可以向服务器“注册”自己

相反,服务器不需要预先配置就可以知道客户端在哪里。它可以独立于任何客户端启动和运行。它只接受所有具有有效凭据的客户端的“注册”,只要它们联机,就可以在客户端脱机后继续运行。此外,如果客户端移动,它只需在服务器的新位置重新注册自己

因此,服务器在某种意义上是系统中更“重要”的部分。没有服务器,任何客户端都不能参与通信,但服务器可以独立于任何客户端运行

要使用WCF双工服务实现这一点,您必须自己做一些额外的工作来实现发布/订阅行为。幸运的是,MSFT模式和实践团队提供了一些关于如何做到这一点的指导


这与真正的点对点方法根本不同,在这种方法中,网络没有明确定义的集线器(即服务器),每个节点的进出都不会影响网络的整体功能。

我是对您之前的问题发表评论的人之一,因此我可能欠您一个答案:o)

你已经发布了相当多的代码,而我还没有详细研究它。但是,一般来说,使用wsDualHttpBinding和双工契约,而不是在双方都有服务的对等方法,有一个原因,如下所示:

双工方法适用于具有明确定义的永久运行的服务器的情况。这提供了交互的中心。其思想是,客户端在某种程度上比服务器更为短暂。客户端可以启动和关闭或移动位置,服务器无需提前知道它们。当客户端启动时,它被预先配置为知道服务器在哪里,因此它可以向服务器“注册”自己

相反,服务器不需要预先配置就可以知道客户端在哪里。它可以独立于任何客户端启动和运行。它只接受所有具有有效凭据的客户端的“注册”,只要它们联机,就可以在客户端脱机后继续运行。此外,如果客户端移动,它只需在服务器的新位置重新注册自己

因此,服务器在某种意义上是系统中更“重要”的部分。没有服务器,任何客户端都不能参与通信,但服务器可以独立于任何客户端运行

要使用WCF双工服务实现这一点,您必须自己做一些额外的工作来实现发布/订阅行为。幸运的是,MSFT模式和实践团队提供了一些关于如何做到这一点的指导


这与真正的点对点方法根本不同,在这种方法中,网络没有明确定义的集线器(即服务器),每个节点都可以在不影响网络整体功能的情况下进出。

理解这一点需要所有代码吗?或者你能总结得更好吗?这似乎是一个简单问题的许多代码…谢谢justin-我同意,但我确实想一次就解释一切-人们一直问我app.config、服务器代码和客户端代码、合同等,所以其中的所有内容都是双工的,仅用于回调-我想从服务器运行客户端功能。但不是回拨。为了将来的参考,我建议你用你认为合适的方法,如果有人问的话就加上。你可能会得到更好的回答,这将帮助你了解什么是相关的,什么是不相关的。只是把一切都扔给我们,因为你不确定这是否有点过时。这是一个非常古老的问题,所以希望它仍在被监控@用户1438082问我为什么不在两个应用程序的两端分别创建一个客户端和一个服务器?。据我所知,duplex不需要服务器和客户端上的SSL证书(假设您需要HTTPS),而在两端都有服务器需要服务器和客户端有自己的SSL证书