我使用Visual Studio 2012开发了一个包含Windows服务的解决方案.VS 2012已经删除了创建安装程序的功能,所以我使用第三方工具进行安装程序生成(WiX),它可以很好地集成到Visual工作室。
我的问题是,虽然WiX能够安装具有自动启动/停止类型的服务,但它无法安装启动时启动的服务。
我已经阅读了很多关于为非管理员用户启动和停止服务的文章,但是对于使用带有'net start myservice'的批处理脚本是否真的适用于非管理员用户似乎存在一些混淆。我不愿意尝试升级指定服务的指定用户的权限,因为它需要适用于安装应用程序套件的任何用户。同样地,我不愿意混淆群体政策,因为:
a)项目需要由一个简单的安装程序安装,用户不必操作这样的东西 b)目标机器上的任何用户都需要能够启动服务
所以我的问题是:
我们将非常感激地接受有关如何解决此问题的任何其他建议。 感谢。
答案 0 :(得分:0)
事实证明,用户错误是错误的:我的服务依赖于另一个服务(MSMQ又名Microsoft消息队列),它正在尝试并且无法在MSMQ之前启动。这里的问题有两个:
我通过
解决了这些问题WiX参考如下:
<ServiceInstall Id="ServiceNameId" Type="ownProcess"
Name="ServiceName" DisplayName="Service Display Name"
Description="Service Description" Start="auto"
Account="LOCALSYSTEM" ErrorControl="normal">
<ServiceDependency Id="MSMQ" />
</ServiceInstall>