我有一个要作为Windows Service运行的应用程序。按照此 MSDN 文档页面中提供的说明(我需要托管WCF服务,因此该过程也详细说明了这部分),我可以做到这一点,如果我实现示例服务就可以了。我用installutil.exe
实用程序,可以将我的应用程序作为 Windows 服务安装和卸载。
我的问题
但是我需要在我的本地机器上安装更多相同应用程序的服务。所以我需要给他们不同System.ServiceProcess.ServiceBase.ServiceName
的s!所以再次考虑安装代码:
[RunInstaller(true)]
public class ProjectInstaller : Installer {
private ServiceProcessInstaller process;
private ServiceInstaller service;
public ProjectInstaller() {
process = new ServiceProcessInstaller();
process.Account = ServiceAccount.LocalSystem;
service = new ServiceInstaller();
service.ServiceName = /* NEED TO PUT HERE THE NAME!!! */;
Installers.Add(process);
Installers.Add(service);
}
}
有没有办法让我在调用时传递服务的名称installutil.exe
?如何解决这个问题?我还尝试使用该App.Config
文件并执行以下操作:
public ProjectInstaller() {
process = new ServiceProcessInstaller();
process.Account = ServiceAccount.LocalSystem;
service = new ServiceInstaller();
service.ServiceName = System.Configuration.ConfigurationManager.
AppSettings["SrvName"];
Installers.Add(process);
Installers.Add(service);
}
但是当然不行,这个文件是在应用程序运行的时候调用的!!!