我在C#中编写了一个非常简单的Windows服务,它自动启动并运行A-okay。我想知道让服务接受命令行输入的最佳方法 - 它总是来自同一个用户(admin),服务本身是完全可信的(LocalSystem)。
我对设计模式术语有点了解(我很少) - 我是否应该将这个简单的服务包装在一个解释器风格的模式中?这太复杂了,有没有办法通过该程序的切入点来实现? (好像我只是在做一个简单的控制台应用程序,可以接受string [] args?)
基本上它应该接受一些非常具体的语法(特定命令),这些语法可以通过控制台发出,只有那些特定的命令(希望避免任何各种安全问题)。
如果需要澄清,请告诉我,并感谢任何建议(甚至是解决方案)!
答案 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 方法