【问题标题】:"Talking" with a windows service C#与 Windows 服务 C#“交谈”
【发布时间】:2014-03-20 18:32:05
【问题描述】:

我需要一种简单易用的方法来用 C# 与 Windows 服务“对话” 我已经能够使用 Windows 窗体应用程序创建 Windows 服务并启动、停止、暂停和继续它。 我的问题是 哪个更好和/或更容易做到这一点? WCF 还是命名管道?或者更容易使用文件并让服务在一段时间后连续检查它? 我对这两个概念(wcf 和命名管道)都非常陌生。所以基本上我要问的是: 哪个值得我花时间? WCF 还是命名管道? 提前谢谢你:)

【问题讨论】:

  • 我不明白?为什么你不能使用 run->services.msc 来启动、停止等为什么你需要创建一个单独的 windows 窗体来控制你的 windows 服务?
  • @Dexters 许多服务都有控制/管理应用程序,可让您配置/接口/重新启动等服务。想做的事情不是没有道理的。此外,如果这是为非技术用户制作的软件,告诉他们使用服务附带的应用程序会更容易,而不是进入服务管理器。
  • @cost ok 有道理..
  • 不确定您的问题到底是什么,但也许您正在寻找msdn.microsoft.com/en-us/library/windows/desktop/…

标签: c# wcf windows-services named-pipes


【解决方案1】:

好的,只需在 c# 中提供一个简单的界面,并使用以下代码来做你想做的事情start,stop,restart

http://www.csharp-examples.net/restart-windows-service/

另外,你可能想看看

SC 命令是专门与 Windows 服务交互的一种方式..

http://msdn.microsoft.com/en-us/library/windows/desktop/ms682107(v=vs.85).aspx

甚至WMIC 用于远程访问

http://msdn.microsoft.com/en-us/library/ms186146%28v=VS.80%29.aspx

【讨论】:

  • 感谢德克斯特的回复。然而,这不是我要找的。让我详细说明。我需要该服务使用已完成的 GSM 调制解调器发送短信,但随后我需要向我的应用程序发送“回复”,该应用程序可以“通知”用户已发送“x”条消息。我需要这样做,因为 Windows 服务没有 UI。现在我可以使用 OnCustomCommand(int) 方法告诉服务开始发送消息,但要从服务与应用程序进行对话,我应该使用哪个控件?
  • 我可以有一个串口,两个组件都可以通过它们的 OnDataRecieved 函数监听并发送消息吗?如果可能,那么这是一个好习惯吗?
  • @user3381338 .. 我不太明白。但一种方法是让您的服务每 10 或 15 分钟轮询一次数据库。您的回复可能会被转储到数据库中。这样您就不会直接与您的应用程序通信,而是通过数据库。
  • 没有其他方法吗?您有使用命名管道的经验吗?因为我在命名管道上找到的例子太复杂了:(
  • @user3381338 如果您将其作为另一个关于您尝试过的问题发布,您可能会得到帮助。
猜你喜欢
  • 2011-11-08
  • 1970-01-01
  • 1970-01-01
  • 2014-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多