C#动态文件系统观察器服务

时间:2012-01-11 12:10:55

标签: c# windows service

我希望能够开发一个能够运行多个具有不同参数的实例的Windows服务。 理想情况下,我希望能够在基于浏览器的控制面板中维护这些参数。

我在C#中编写了一个控制面板,它将配置数据保存到XML文件中。 从此我希望能够配置要运行的服务数量,以及它们的参数应该是什么。 我希望能够根据需要动态添加和删除服务实例。

我的问题是: 1)这甚至可能吗? 2)我可以从控制面板启动具有特定属性的服务吗? (也许通过命令行参数使用“NET START”?

[编辑] 我刚看到有关ServiceController类的在线内容;这可以用于添加和删除服务的实例以及启动/停止服务吗? [/编辑]

感谢您的帮助

1 个答案:

答案 0 :(得分:3)

修改:我的初步答案实际上是错误的。

可以使用命令行参数,可以使用NET START(但只接受以反斜杠开头的参数)或使用SC START(它将接受任何内容作为参数)。 您无法使用动态选择的命令行参数启动服务。也可以在服务注册时指定参数,在这种情况下,它们之后保持不变。

然而,启动服务的多个实例听起来像是错误的想法。没有什么可以阻止你在运行时通过与之通信来配置服务的一个实例(例如使用ServiceController.ExecuteCommand),这就是你应该做的事情。

要与服务进行通信,请参阅例如How to communicate with a windows service from an application that interacts with the desktop?How to create and communicate with a C++ Windows Service in Visual Studio 2010?