【问题标题】:Windows service app that can dynamically accept console commands可以动态接受控制台命令的 Windows 服务应用程序
【发布时间】:2011-05-07 09:42:03
【问题描述】:

我只是想对我正在进行的一个项目提供一些意见。基本上,我正在创建一个服务,该服务通过命令行监视和处理由配置文件和其他参数指定的目录中的新文件。它还应该通过命令行输出文本,即当用户输入“-help”时,它会显示它的用法。一个目标是让用户可以即时更改配置文件,因此服务将不断监控配置文件的更改并进行相应调整。

我看到的挑战是尝试整合通过命令行输入命令、显示输出的能力,就像它是一个控制台应用程序一样,并让服务能够在服务中运行时处理这些命令控制管理器。到目前为止,在我的研究中,我偶然发现的解决方案似乎展示了如何创建一个也可以作为控制台应用程序运行的 Windows 服务应用程序,但它要么作为一种应用程序运行,要么作为另一种运行,而不是两者。任何建议或意见表示赞赏。

更新:

感谢大家的建议,我在各种 Windows 支持的 IPC 机制上做了一些reading。我将我的选项归结为文件映射、命名管道和 RPC。我现在假设 Windows 服务应用程序和 Helper Console 应用程序将位于同一台计算机上,并且不需要通过网络进行通信。我会先看看命名管道。

【问题讨论】:

  • 如果你想创建一个用户可以通过命令行发送命令的东西,你总是可以让你的应用程序通过 tcp 客户端监听特定端口,你可以远程登录到该端口并发送命令.

标签: c# visual-studio visual-studio-2008 windows-services console-application


【解决方案1】:

我会编写一个控制台应用程序,向服务发送请求并显示其响应。如果你想聪明一点,你可以将这两个部分包含在同一个可执行文件中。我想不出任何方法可以让服务在作为服务运行时对控制台进行写入和读取。

【讨论】:

    【解决方案2】:

    服务需要提供与之通信的可能性,但这不能直接完成,它必须通过某种 IPC(进程间通信)来完成,这可能是 .net Remoting、WCF、tcp /ip。您必须编写一个帮助程序来解析命令行并使用此 IPC 将命令发送到服务,该服务可以在接收到命令时采取适当的行动。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多