Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WIX安装程序服务控制“;“足够的特权”;错误_C#_Windows Services_Wix_Installation_Visual Studio 2015 - Fatal编程技术网

C# WIX安装程序服务控制“;“足够的特权”;错误

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启动它,它就可以正常工作 从其他问题来看,这个错误似乎是一个普遍的捕获错误,并

Visual Studio 2015 RC Wix v3.10.0.1726

我正在为windows服务创建安装程序。我已经用InstallUtil测试了该服务,它运行良好。不幸的是,我在wix上遇到了一些麻烦,下面是确切的错误-

“服务‘服务名称’启动失败。请验证您是否有足够的权限启动系统服务。”

现在我已经将问题缩小到通过WIX启动服务。如果我放弃ServiceControl标签,并手动使用services.msc启动它,它就可以正常工作

从其他问题来看,这个错误似乎是一个普遍的捕获错误,并且发生在各种情况下。如果您的服务依赖于安装到GAC(全局程序集缓存)中的程序集,那么最流行的是GAC(全局程序集缓存),对此我也不清楚。我从不将任何内容隐式保存到GAC,我的服务只是调用我编写的包含在项目中的.cs文件

任何帮助都将不胜感激

<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,我的错。无论如何,如上所述,问题已经解决,谢谢大家的帮助。