0

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

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

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

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

4

3 回答 3

1

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

于 2009-10-22T18:40:25.817 回答
1

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

.net 中的配置在语法和定制优势方面高度组织化。

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

于 2009-10-22T18:42:37.670 回答
1

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

使用 .NET 创建无人参与的 Windows 服务并与之通信

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

...

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

于 2009-10-22T18:44:32.833 回答