首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在同一台PC上安装多个版本的Windows服务

问在同一台PC上安装多个版本的Windows服务
EN

Stack Overflow用户
提问于 2010-12-01 19:13:26
回答 2查看 1.4K关注 0票数 1

我有一个Windows3.5Windows服务,它有几种不同的配置/风格,例如:.NET 3.5Windows Service。发布,测试,调试等。我已经为服务创建了一个安装程序包,它是作为msbuild脚本的一部分构建的,但我需要能够以一种允许服务的每种风格都安装在同一台机器上的方式来构建安装程序。有人知道做这件事的最好方法吗?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-01 19:38:42

也许this article能帮上忙?

The Problem (问题解决方案)

在使用Reflector查看ServiceInstaller类时,您将看到它在ServiceInstaller.Install方法中对CreateService进行了Win32调用。每当使用与已经安装的服务的serviceName或displayName参数匹配的方法调用该方法时,CreateService都将返回ERROR_DUPLICATE_SERVICE_NAME返回代码。这就是导致在上面的窗口中抛出Win32Exception并最终导致第二次安装失败的原因。您可以在CreateService function here上查看完整的文档。

要解决此问题,所需做的就是在安装和服务启动过程中将服务名称动态设置为已知值,并确保所安装服务的每个实例的值都不同。

解决方案

所有需要做的就是确保每个服务安装实例的名称是唯一的。然后,您需要为您希望拥有的每个服务实例提供安装目录的副本。最后,您需要能够在安装和启动期间动态设置服务名称。这将通过使用app.config文件来实现。

本文继续提供有关如何在同一台计算机上安装.NET Windows服务的多个实例的分步说明。

当然,我不禁想知道为什么你需要在同一台机器上同时运行Debug和Release版本。

票数 2
EN

Stack Overflow用户

发布于 2011-01-22 02:56:36

只是想引起人们对Cody gray一文中的评论的注意。似乎作者和一位评论者一致认为,使用sc.exe有一种更简单的方法,如下所示

代码语言:javascript
复制
sc \\myserver create NewService binpath= c:\nt\system32\NewServ.exe
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4323733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档