我有一个Windows服务可执行文件,我知道是用.NET编写的,我需要在不同的服务名称下安装以避免冲突。无论如何,安装都不提供指定服务名称。如果我只能访问二进制文件,那么当我用installutil安装它时,是否还要覆盖服务名称?
答案 0 :(得分:96)
你必须使用InstallUtil吗?以下是使用sc执行所需操作的命令:
sc create MyService binPath= "MyService.exe" DisplayName= "MyService"
sc description MyService "My description"
答案 1 :(得分:27)
InstallUtil不允许您配置服务名称。我一直这样做
InstallUtil.exe /servicename="<service name>" "<path to service exe>"
答案 2 :(得分:23)
添加方法以获取CustomService名称
private void RetrieveServiceName()
{
var serviceName = Context.Parameters["servicename"];
if (!string.IsNullOrEmpty(serviceName))
{
this.SomeService.ServiceName = serviceName;
this.SomeService.DisplayName = serviceName;
}
}
调用安装和卸载
public override void Install(System.Collections.IDictionary stateSaver)
{
RetrieveServiceName();
base.Install(stateSaver);
}
public override void Uninstall(System.Collections.IDictionary savedState)
{
RetrieveServiceName();
base.Uninstall(savedState);
}
installutil /servicename=”My Service [SysTest]” d:\pathToMyService\Service.exe
答案 3 :(得分:5)
这对我来说非常有用!
我希望有人可以使用它。
答案 4 :(得分:2)
尝试使用sc.exe安装您的服务。快速搜索将产生大量文档。使用该工具,可以轻松修改现有服务和/或添加新服务 - 包括名称。
编辑:我使用此工具安装我的.NET服务。