C# WIX安装程序服务控制“;“足够的特权”;错误
Visual Studio 2015 RC Wix v3.10.0.1726 我正在为windows服务创建安装程序。我已经用InstallUtil测试了该服务,它运行良好。不幸的是,我在wix上遇到了一些麻烦,下面是确切的错误- “服务‘服务名称’启动失败。请验证您是否有足够的权限启动系统服务。” 现在我已经将问题缩小到通过WIX启动服务。如果我放弃ServiceControl标签,并手动使用services.msc启动它,它就可以正常工作 从其他问题来看,这个错误似乎是一个普遍的捕获错误,并且发生在各种情况下。如果您的服务依赖于安装到GAC(全局程序集缓存)中的程序集,那么最流行的是GAC(全局程序集缓存),对此我也不清楚。我从不将任何内容隐式保存到GAC,我的服务只是调用我编写的包含在项目中的.cs文件 任何帮助都将不胜感激C# WIX安装程序服务控制“;“足够的特权”;错误,c#,windows-services,wix,installation,visual-studio-2015,C#,Windows Services,Wix,Installation,Visual Studio 2015,Visual Studio 2015 RC Wix v3.10.0.1726 我正在为windows服务创建安装程序。我已经用InstallUtil测试了该服务,它运行良好。不幸的是,我在wix上遇到了一些麻烦,下面是确切的错误- “服务‘服务名称’启动失败。请验证您是否有足够的权限启动系统服务。” 现在我已经将问题缩小到通过WIX启动服务。如果我放弃ServiceControl标签,并手动使用services.msc启动它,它就可以正常工作 从其他问题来看,这个错误似乎是一个普遍的捕获错误,并
<Component Id="ProductComponent7">
<File Source="$(var.ServiceName.TargetPath)" KeyPath="yes" Vital="yes"/>
<ServiceInstall Id="ServiceName.exe"
Account="LocalSystem"
Arguments="-start"
Type="ownProcess"
Name="ServiceName.exe"
DisplayName="ServiceName Service"
Description="sdfg"
Start="auto"
Interactive="yes"
ErrorControl="critical" />
<ServiceControl Id="ServiceControl" Name="ServiceName" Start="install" />
</Component>
我还尝试了ServiceControl中的各种不同属性,最近我将它们全部删除,以使其尽可能简单
如果有人有任何见解那就太好了 正确,这是一般性错误。您必须分析您的服务,以了解其无法启动的原因 GAC只是一种情况。在这种情况下,这是因为MSI在StartServices之后才将程序集发布到GAC。导致缺少依赖项和错误的典型竞争条件
在消息框仍然打开的情况下,从控制台运行EXE。你有错误记录吗?您的应用程序日志中是否有任何错误?找出服务无法修复的原因,解决它,然后重试 问题似乎是您安装了一个名为ServiceName.exe的服务,并且正在尝试启动一个名为just ServiceName的服务。名称值需要匹配 对于我来说,错误是由于
ServiceInstall
标记中的Name
属性的名称值与ServiceBase子类中指定的名称值不同
代码更新:
在Product.wxs:
<ServiceInstall Id="ServiceInstaller"
Type="ownProcess"
Name="MyWindowsService"
DisplayName="$(var.ServiceDisplayName)"
Description="$(var.ServiceDiscription)"
Start="auto"
Account="LocalSystem"
ErrorControl="normal" />
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
this.ServiceName = "MyWindowsService";
}
您能否在启用详细日志记录的情况下运行安装程序:msiexec/l*v Install.log/i YourInstallPackage.msi
。在日志文件“Install.log”中搜索尝试服务控制的部分。可能有更多关于错误的信息。我的调试技巧还没有达到标准。谢谢,这与详细的日志记录相结合,应该会使我下一个破解的东西更容易破解。请参见下面Phil的答案。可能就这么简单!:)嘿,是的,那对我来说就够了。:)我没有仔细看src。很多时候,这些例子都是经过编辑的,可能是打字错误,真正的来源是好的。是的,我删除了我所有的公司信息,以免它们看起来不专业,并且忘记了ServiceName上的.exe,我的错。无论如何,如上所述,问题已经解决,谢谢大家的帮助。