WCF客户端和服务器

我需要多个与WCF服务通信的客户端。 WCF服务还必须能够连接到任何一个客户端。

所以 – 听起来像服务器和客户端需要在每个服务器中都内置WCF服务器和客户端。

这是正确的还是有某种方法可以做到这一点?

我在看NetPeerTcpBinding,但这已经过时了。 公平地说,我不确定这是否也是一个有效的解决方案。

背景:

  • 我计划在我们网络中的数百台机器上安装Windows服务,其中包含WCF服务和内置的WCF客户端。
  • 我将在具有WCF服务和内置客户端的服务器上安装一个Windows服务。
  • 我将有一个Windows窗体应用程序
  • 我会有一个数据库

网络上的客户端将连接到服务器上运行的服务,以便在数据库中插入一些信息。

用户将使用Windows窗体应用程序连接到服务器上的Windows服务,此Windows服务将连接到工厂车间的相关客户端(以允许远程浏览文件和文件夹)。

因此,我相信地板上的机器和服务器都需要内置WCF cleint和服务。

如果您希望您的服务与您的客户进行通信,请使用wsDualHttpBinding。

读取WS双HTTP

人们推荐wsHttpDualBinding的原因是因为它本身是一个安全且可互操作的绑定,旨在与双工服务契约一起使用,允许服务和客户端发送和接收消息。

提到的“双工”通信类型有几种变化。 Half和Full是最简单的。

  • 半双工:像对讲机一样工作,一个人可以在任何特定时间说话。
  • 全双工:与手机一样,任何人都可以在任何时间发言。

每个都会带来好处和问题,它们还提供了根据您的需求更有效地建立这种沟通的方法。


我有点困惑,但我会试着澄清一下。

您可能会遇到各种各样的方法,Windows Communication Foundation(WCF)服务需要以下内容:

  • 地址
  • 捆绑
  • 合同

这些基本上是WCF的“ABC”。 这些图片的创作描绘了这样的图片:

WCF图

如您所见,服务将包含:

  • 主办
  • 服务
  • 客户

主机容纳客户端将使用的服务,因此这些服务方法执行期望的任务。 示例表示:

端点

如您所见Client-1正在通过Internet(HTTP,HTTPS等),然后将命中主机,这将使服务执行这些任务。

现在Client-n正在本地使用该服务,因此它正在谈论(TCP等)作为示例。

最容易记住的方法:许多客户端需要使用这些方法来执行任务,因此可以使用一种服务。 您可以使用面向服务的体系结构 (SOA)创建非常复杂的模型。

所有WCF都是将您的应用程序连接到您可能无法访问的主机或集中位置的意思。

客户端通过服务来托管,访问数据库。

如上图所示,客户端通过服务与主机进行通信。 其中执行一系列任务。 WCF将讨论一系列协议。 希望这将更好地理解WCF的结构。

有很多教程甚至post可以帮助您入门。 一些优秀的书籍,如“WCF Step by Step”


基本上您正在寻找异步全双工连接或同步全双工服务。 如上所述,您的任务本质上是服务的重点。

问题:这怎么效果最好?

它将归结为您的设计。 您需要遵守一些限制和结构,以便为您的目标真正优化它。

这些障碍可能是:

  1. 服务器负载
  2. 沟通路径
  3. 安全
  4. 多个客户端更改UI /相同数据
  5. 等等。

该列表继续并继续。 我真的在WCF上查阅教程或一些书。 以下是一些:

  • WCF一步一步

  • WCF多层开发

  • WCF服务开发

它们将帮助您使用服务结构以符合您的预期目标。


记住使用WCF取得最大成功的“ABCs”。

您可能希望尝试使用netTcpBinding创建WCF服务。 它将适合您的要求。 您可以使用文章如何:在Windows窗体的WCF调用中使用netTcpBinding与Windows身份validation和传输安全性作为开始:

此外,您可以使用WCF Samples包中包含的许多示例。