我正在创建一个网络应用程序。我想创建一个监听服务(TCP),它会持续监听并据此更新网页。
Windows 服务还是 WCF 服务?
最后,我只想要一个后台服务,它可以连续监听套接字并更新数据库中的数据。当数据库更新时,我将使用信号 r 在我的页面中显示它。
现在我正在尝试使用 WCF,但我想知道是否也可以使用 Windows 服务来完成。现在这个应用程序将在局域网上运行。但在未来,它也可以在云端。
我正在创建一个网络应用程序。我想创建一个监听服务(TCP),它会持续监听并据此更新网页。
Windows 服务还是 WCF 服务?
最后,我只想要一个后台服务,它可以连续监听套接字并更新数据库中的数据。当数据库更新时,我将使用信号 r 在我的页面中显示它。
现在我正在尝试使用 WCF,但我想知道是否也可以使用 Windows 服务来完成。现在这个应用程序将在局域网上运行。但在未来,它也可以在云端。
首先,重要的是要了解 Windows 服务和 WCF 服务是不同的。
在考虑您所描述的问题时,我想最根本的问题是您是否可以控制将通过 TCP 连接接收的数据。WCF 建立在 ABC(地址、绑定和合同)的概念之上,所有这些都必须匹配以促进 WCF 端点之间的数据交换。例如,如果您希望通过接受来自某个远程 WCF 端点的 TCP 连接的 IIS 公开 WCF 端点,则远程 WCF 端点需要使用商定的数据协定将数据发送到您的 IIS 托管的 WCF 端点。否则,WCF 将无法工作。因此,如果您无法定义要在 WCF 端点之间使用的数据协定,那么您将需要找到另一个选项。一个可行的选项是在 Windows 服务中打开 TCP 侦听器,在接收到数据时对其进行处理,
=================================================
例如,我在一个项目中工作,该项目有一个与后端 Windows 服务通信的前端桌面应用程序。我们同时构建应用程序和 Windows 服务,因此我们可以完全控制两个进程之间的数据交换。曾几何时,我们使用 WCF 作为数据交换机制。Windows 服务将托管一个暴露 . 的 WCF 服务,NetNamedPipeBinding
我们稍后将其更改为NetTcpBinding
解决一些系统管理问题。然后,应用程序将创建自己的端点,以与 Windows 服务中托管的 WCF 服务进行通信。
这工作得很好。
随着我们的系统变得越来越成熟,我们需要开始从 Windows 服务向应用程序发送越来越多的信息。如果我没记错的话,我相信我们在 WCF 中尝试了流式传输,并得出结论认为开销不是我们可以容忍的。因此,我们使用 WCF 在应用程序和 Windows 服务之间交换命令和状态信息,但我们同时使用 TCP 套接字连接将数据从 Windows 服务流式传输到应用程序。
这工作得很好。
当我们有机会更新 Windows 服务软件时,我们决定在 Windows 服务和应用程序之间建立一个单一的通信机制会更好。因此,我们将 WCF 完全替换为 TCP 套接字连接,该连接使用本地消息传递协议在两个方向交换信息 - 应用程序到 Windows 服务和 Windows 服务到应用程序。
这很好用,是我们几年来一直使用的方法。
高温高压