7

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

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

这是正确的还是有办法做到这一点?

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

背景:

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

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

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

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

4

3 回答 3

18

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

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

  • 半双工:像对讲机一样工作,一个人可以在任何给定时间讲话。
  • 全双工:就像电话一样,任何人都可以在任何给定时间讲话。

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


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

您有各种可能在此处出现的方法,Windows Communication Foundation (WCF) 服务需要以下内容:

  • 地址
  • 捆绑
  • 合同

这些本质上是 WCF 的“ABC”。那些的创作描绘了这样一幅画面:

WCF 图

如您所见,该服务将包含:

  • 主持人
  • 服务
  • 客户

主机包含客户端将使用的服务,因此这些服务方法执行所需的任务。一个示例表示:

端点

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

现在Client-n正在本地使用服务,因此它以通过(TCP 等)进行通信作为示例。

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

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

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

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

有很多教程甚至帖子可以帮助您入门。一些优秀的书籍如《WCF Step by Step》


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

问题是:这如何最好地工作?

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

这些障碍可能是:

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

该列表继续并继续。我真的会查找有关 WCF 的教程或几本书。这里有几个:

他们将帮助您使用服务结构来实现您期望的目标。


记住 WCF 最成功的“ABC”。

于 2013-03-02T19:49:02.077 回答
5

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

阅读WS Dual HTTP

于 2013-03-02T19:52:45.290 回答
2

您可能想尝试使用netTcpBinding创建 WCF 服务。它将满足您的要求。您可以使用文章How to: Use netTcpBinding with Windows Authentication and Transport Security in WCF Calling from Windows Forms作为开始:

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

于 2013-03-02T19:51:26.613 回答