【问题标题】:Talk to windows service与 Windows 服务交谈
【发布时间】:2011-11-08 05:17:54
【问题描述】:

我不确定我的标题应该是什么,所以我使用了“谈话”这个词。

我创建了一个运行完美的窗口服务。安装和一切。

但是。我需要一个正在运行的系统托盘,以及一个可以在 Windows 服务中调用函数的程序。

就像,当用户点击“Get Clicked”时,它会在windows service 中转动一些东西。

我不确定我该怎么做.. 我已经开始思考一些真正愚蠢的方法。

就像改变一个文本然后windows服务读取它以获取命令。我认为这是非常愚蠢的方式。您知道我可以通过其他方式与window sservice 交谈吗?

似乎每个人都在回答“WCF”。但是,如果只在端口 25555 上打开一个到 TCP 的端口或其他东西,那不是很简单。并且只读写?喜欢的话。 “现在,以后”。并用它做功能?我认为它会工作。不是吗?

【问题讨论】:

标签: c# .net windows-services


【解决方案1】:

过去经常使用 .NET 远程处理,现在您可以使用性能更好的 WCF。

只需在您的 Windows 服务中托管一个小型 WCF 服务,并使 UI 应用程序(如托盘图标管理器)调用那些公开的 WCF 端点以与该服务进行通信。

你不需要 IIS 或其他任何东西,如果你使用 netTcp 绑定或命名管道,它会顺利运行。

【讨论】:

【解决方案2】:

如果您不喜欢使用 WCF 或任何服务。您可以采用 DB 方式(或文件系统)。编写命令并序列化对象(如果需要)并存储在任何文件或数据库中。修改您的服务以观察位置并读取和执行命令。如果需要,反序列化对象。您可以使用共享对象(内存)来实现这一点。不过,使用 WCF 会更加灵活和可扩展。

【讨论】:

  • 是的,这也可以。但是为什么要走低级呢?您是否期望 commandSender 和 commandHandler 在不同的机器上?
  • "Low Levels" 是不是好办法?如果是这样的话。因为没有好的公会如何使用WCF。我什么也没找到。我需要该程序在大约 5 天内运行。所以如果 tcp 是我这样做的方式,我选择了什么?
  • 取决于您的应用程序将执行的命令的复杂程度和数量,但如果我假设 20 个命令,您肯定可以在 2-3 天内实现。这是创建简单 wcf weblogs.asp.net/ralfw/archive/2007/04/14/… 的链接
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-23
  • 1970-01-01
相关资源
最近更新 更多