接受用C#编写的标准Windows服务的命令行输入的简单方法?

时间:2009-10-22 18:37:37

标签: c# console service design-patterns interpreter

我在C#中编写了一个非常简单的Windows服务,它自动启动并运行A-okay。我想知道让服务接受命令行输入的最佳方法 - 它总是来自同一个用户(admin),服务本身是完全可信的(LocalSystem)。

我对设计模式术语有点了解(我很少) - 我是否应该将这个简单的服务包装在一个解释器风格的模式中?这太复杂了,有没有办法通过该程序的切入点来实现? (好像我只是在做一个简单的控制台应用程序,可以接受string [] args?)

基本上它应该接受一些非常具体的语法(特定命令),这些语法可以通过控制台发出,只有那些特定的命令(希望避免任何各种安全问题)。

如果需要澄清,请告诉我,并感谢任何建议(甚至是解决方案)!

3 个答案:

答案 0 :(得分:1)

我通过让控制台应用程序修改我的配置文件来完成此操作,我的服务知道要通过监视文件夹进行检查来检查。

答案 1 :(得分:1)

您可以在项目中添加App.Config文件,Windows Service可以访问与yourapp.exe.config相同的文件夹上的app.config。

.net中的配置在语法和自定义方面的优势非常有条理。

使用App.config也不需要您更改安装设置。

答案 2 :(得分:1)

根据您的描述,这就是您要寻找的:

Create and communicate with an Unattended Windows Service using .NET

  

OnCustomCommand事件允许   应用程序与正在运行的交互   通过传入整数值来进行服务。

...

  

服务启动后,您发送   使用整数命令到它   ServiceController的ExecuteCommand   方法