【问题标题】:Two way communication using netTCPBinding使用 netTCPBinding 的两种方式通信
【发布时间】:2012-07-05 06:58:35
【问题描述】:

我是 WCF 的新手(只需一两天)。我打算制作一个具有客户端/服务器的应用程序

WCF 服务(在作为 Windows 服务托管的服务器上):

  1. 将使用 (Process.Start()) 调用一些命令
  2. 将从我的数据库中发送一些信息

问题:

  1. 我应该使用什么 WCF 绑定? WsDualhttp 或 netTCP (请详细说明)
  2. WCF 是否适用于 SqlServer + EF 4.1

服务器界面:

这将主要用于

  1. 启动或停止上述服务
  2. 更改地址(本地主机到[我的IP地址])和端口
  3. 显示服务状态(运行或停止)

问题:

  1. 如何从这个 UI 更改我的 WCF 服务的地址和端口(这将是一个不同的项目,因此是不同的配置文件)。

客户端应用:

  1. 用于向 WCF 服务发出命令。
  2. 了解服务是运行还是停止。
  3. 接收任务完成或故障的状态消息。

另外,windows安装程序可以结合安装ServerUI+WCF服务+Windows服务吗?

【问题讨论】:

    标签: c# wcf .net-4.0 windows-services nettcpbinding


    【解决方案1】:

    WCF 服务

    1. 这里有几个关于选择正确装订的链接。根据您描述的场景,我会选择 netTCP。
    2. WCF 和 SQL Server 相互独立,因此我认为使用 Windows 服务与数据库交互不会出现任何问题。
    3. 我建议阅读how to start a process from a Windows service

    服务器界面

    1. 我建议在您的 Windows 服务中托管另一个 WCF 服务,以便与您的服务器 UI 进行交互。您可以使用 netNamedPipeBinding,因为此通信通道将始终是本地的,即在同一个盒子上。因此,您的 Windows 服务将托管两个 WCF 服务 - 一个用于与客户端的外部通信,另一个用于与配置 UI 的本地通信。

    安装程序

    1. 是的,可以使用 Windows 安装程序,但对于您所描述的内容,这可能有点过头了。在服务器 UI、WCF 服务和 Windows 服务中,唯一绝对需要安装的是 Windows 服务。其他的理论上可以简单地通过将程序集复制到目标系统来运行。您可以考虑通过命令行自行安装 Windows 服务。这样你就可以使用像WinZip 这样的软件来摆脱自解压可执行文件。这可能没有正式安装那么重要。如果你走这条路,请看一步一步的here

    【讨论】:

    • 感谢您的回复..我得到了Binding 我必须使用的答案。但是我仍然没有得到WCFServerUIService如何改变addressport本身的EndpointWCFClientUiService的数量??
    【解决方案2】:

    看看WCF双工服务: http://msdn.microsoft.com/en-us/library/ms731064.aspx

    为什么你想要一个 Windows 服务的接口?如果您可以访问 IIS7 和 WAS,我建议您使用它而不是在 Windows 服务中自托管。

    这是 WCF 配置管理的一个很好的起点: http://msdn.microsoft.com/en-us/library/ff650534.aspx

    是的,您可以使用 Windows 安装程序。

    干杯 --乔克

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-27
      • 1970-01-01
      • 1970-01-01
      • 2019-05-10
      • 2014-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多