Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.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
Localization wix服务未以本地化帐户启动_Localization_Wix - Fatal编程技术网

Localization wix服务未以本地化帐户启动

Localization wix服务未以本地化帐户启动,localization,wix,Localization,Wix,我有两个WIX项目可以启动安装和启动服务。由于我需要安装人员在非英语机器上工作,我一直在使用WixQueryOyswellKnownsID属性为服务提供本地化的帐户名 但我显然有点不对劲;因为尽管服务已安装,但它们不会在某些地区启动。到目前为止,我知道安装人员在荷兰、法国、日本和中国工作;但不要在德国和比利时工作(比利时机器上的语言是法语) 安装期间,我们收到一条“服务“ServiceName”启动失败。请验证您是否有足够的权限启动系统服务。”错误消息。 如果我忽略错误,然后打开服务MMC,服务

我有两个WIX项目可以启动安装和启动服务。由于我需要安装人员在非英语机器上工作,我一直在使用WixQueryOyswellKnownsID属性为服务提供本地化的帐户名

但我显然有点不对劲;因为尽管服务已安装,但它们不会在某些地区启动。到目前为止,我知道安装人员在荷兰、法国、日本和中国工作;但不要在德国和比利时工作(比利时机器上的语言是法语)

安装期间,我们收到一条“服务“ServiceName”启动失败。请验证您是否有足够的权限启动系统服务。”错误消息。 如果我忽略错误,然后打开服务MMC,服务将显示为具有本地化帐户名(德国机器上的NT-AUTORITÄT\NETZWERKDIENST);然后,如果我手动将服务帐户设置为网络服务,服务MMC将显示Netzwerkdienst,服务运行正常

我已经在Windows7和Server2008R2上对此进行了测试-这两个操作系统都存在相同的问题

WIX服务代码:

<PropertyRef Id="WIX_ACCOUNT_NETWORKSERVICE"/>

<Component Id="ProductComponent" Guid="5bcdeb4a-9832-4a01-9863-60bc0634a8fd">
          <File Id="$(var.WebLoggerSR2Service.TargetName)" Name="$(var.WebLoggerSR2Service.TargetFileName)" 
                Source="$(var.WebLoggerSR2Service.TargetPath)" DiskId="1" KeyPath="yes" Checksum="yes"></File>
          <ServiceInstall Id="ServiceInstaller" Type="ownProcess" Name="$(var.WebLoggerSR2Service.TargetName)"
                          Description="!(loc.SVCINST_DESCRIPTION)" 
                          ErrorControl="normal" Start="auto" Account="[WIX_ACCOUNT_NETWORKSERVICE]"/>
          <ServiceControl Id="StartWixServiceInstaller"
                          Name="$(var.WebLoggerSR2Service.TargetName)" Start="install" Wait="no" /> 
          <ServiceControl Id="StopWixServiceInstaller" Name="$(var.WebLoggerSR2Service.TargetName)"
                          Stop="both" Wait="yes" Remove="uninstall" />
          <Util:EventSource xmlns:Util="http://schemas.microsoft.com/wix/UtilExtension"
                         Name="$(var.WebLoggerSR2Service.TargetName)" Log="Application"
                         EventMessageFile="[NETFRAMEWORK20INSTALLROOTDIR]EventLogMessages.dll" />
          <RemoveFolder Id="INSTALLLOCATION" On="uninstall"/> 
</Component>


我正在Visual Studio 2012上使用WIX版本3.9.16.0和Voctive

可能只是一个注释,但对于该空间来说太长了

NetworkServiceAccount上的文档显示:

可以在调用CreateService和ChangeServiceConfig函数时指定此帐户。请注意,此帐户没有密码,因此您在此呼叫中提供的任何密码信息都将被忽略。当安全子系统将此帐户名本地化时,SCM不支持本地化名称。因此,您将从LookupAccountSid函数收到此帐户的本地化名称,但在调用CreateService或ChangeServiceConfig时,该帐户的名称必须是NT AUTHORITY\NetworkService,而不管区域设置如何,否则可能会出现意外结果。 ()


如果它是正确的,这是非常奇怪的,因为它似乎在说CreateService(MSI最终调用的是)需要英文形式的名称,但当你实际要求它时,你会得到本地化的名称。这就是为什么您会看到本地化名称n MMC,所以我的愚蠢问题是您是否尝试过在其他语言操作系统版本上使用标准英文格式?

谢谢,Phil,您是对的。我使用本地化名称是因为访问权限等时需要它,我没有想到服务控制管理器需要英语。