kub*_*003 8 c# windows-services
我用C#写了一个windows服务.一开始的要求是我应该只运行该服务的一个实例,但是已经改变了,现在我需要多个实例.这就是我需要根据配置文件更改服务名称的原因.
使用正确的名称注册的最佳方法是什么?我应该写另一个工具来做吗?我可以从App.config文件中读取名称并在服务和安装程序类中相应地设置它吗?
PS>我真的不明白名称是如何工作的 - 应该在服务和安装程序类中设置名称,但是当使用installutil.exe甚至PowerShell new-service进行安装时,也应该指定名称.那必须是一样的吗?或者一个覆盖另一个?
您可以简单地从app.config中读取它并在安装程序类中进行设置。
通常,Installer会自动创建一个继承自的类。它包含类型的成员System.ServiceProcess.ServiceInstaller,最有可能命名为serviceProcessInstaller1。它具有ServiceName可以设置的属性。此外,您需要ServiceName将ServiceBase派生类的属性设置为相同的值。
在默认实现中,这些值在各自的InitializeComponent方法中设置为常数,但是没有理由坚持这样做。它可以动态完成而不会出现问题。