Wix 安装程序:验证您是不是有足够的权限来启动系统服务
Posted
技术标签:
【中文标题】Wix 安装程序:验证您是不是有足够的权限来启动系统服务【英文标题】:Wix installer: Verify that you have sufficient privileges to start system servicesWix 安装程序:验证您是否有足够的权限来启动系统服务 【发布时间】:2014-01-24 05:57:22 【问题描述】:我正在使用 Wix 安装程序。当我运行安装程序时,出现此错误:
我以管理员身份登录。我也尝试创建另一个用户。 所以我尝试了:
1|我将我的用户“管理员”添加到“作为服务登录”
2|我检查了我的 Net.Tcp 端口共享服务是否正在运行
3|我得到了我的 SID
4|我用我的 SID 添加到 SMSvcHost.exe.config 部分。
勾选“我的管理员 sid”
<system.serviceModel.activation>
<net.tcp listenBacklog="10" maxPendingConnections="100" maxPendingAccepts="2" receiveTimeout="00:00:10" teredoEnabled="false">
<allowAccounts>
// My administrator sid
<add securityIdentifier="S-1-5-21-334175509-2570308825-1313804348-500"/>
// LocalSystem account
<add securityIdentifier="S-1-5-18"/>
// LocalService account
<add securityIdentifier="S-1-5-19"/>
// Administrators account
<add securityIdentifier="S-1-5-20"/>
// Network Service account
<add securityIdentifier="S-1-5-32-544" />
// IIS_IUSRS account (Vista only)
<add securityIdentifier="S-1-5-32-568"/>
</allowAccounts>
</net.tcp>
<net.pipe maxPendingConnections="100" maxPendingAccepts="2" receiveTimeout="00:00:10">
<allowAccounts>
// LocalSystem account
<add securityIdentifier="S-1-5-18"/>
// LocalService account
<add securityIdentifier="S-1-5-19"/>
// Administrators account
<add securityIdentifier="S-1-5-20"/>
// Network Service account
<add securityIdentifier="S-1-5-32-544" />
// IIS_IUSRS account (Vista only)
<add securityIdentifier="S-1-5-32-568"/>
</allowAccounts>
</net.pipe>
<diagnostics performanceCountersEnabled="true" />
</system.serviceModel.activation>
5|我肯定会编辑所有 SMSvcHost.exe.config:
C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ C:\Windows\Microsoft.NET\Framework\v4.0.30319
C:\Windows\Microsoft.NET\Framework64\v3.0\Windows Communication Foundation C:\Windows\Microsoft.NET\Framework64\v4.0.30319
6|重启 = Net.Tcp 端口共享服务
7|当我在安装过程中收到该警告消息时,我没有取消,我还尝试从安装文件的路径运行服务,并通过 cmd 提示我手动运行它并运行。
8|但是我的安装器无法完成安装。每次我得到那个句子:“验证你有足够的权限来启动系统服务。”我只能取消安装和安装回滚并删除所有文件。
有什么帮助吗? 5 天我会在没有结果的情况下解决这个问题。我在 2 台具有 WINDOWS SERVER X64 和 WINDOWS 8 X64 的不同虚拟机上进行了测试。
我的组件代码在这里:
<?xml version="1.0" encoding="utf-8"?>
<!--
"C:\Program Files (x86)\Windows Installer XML v3.6\bin\heat.exe" dir ..\WindowsServiceHost\bin\Release -dr TARGETDIR -cg WindowsServiceHost_Project -scom -sfrag -sreg -srd -gg -var var.WindowsServiceHost.TargetDir -out WindowsServiceHost.wxs -pog Binaries -pog Content
-->
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
<!-- The initially, this has been created with Heat to get all output -->
<Fragment>
<DirectoryRef Id="APPLICATIONFOLDER">
<Component Id="cmpF563E3CE297225623330C6BDFBFCDB12" Guid="6742348C-A620-46FA-8DA8-0EB0CCA1C123">
<File Id="fil21CA92101BF52AFED2FDCE521FCA6123" KeyPath="yes" Source="$(var.WindowsServiceHost.TargetDir)\Antlr3.Runtime.dll" />
</Component>
<Component Id="cmp353671C776668DEF5DCC15C233E2CA49" Guid="A8F26FCD-4BBB-4665-903A-45DDAAFE3123">
<File Id="fil889A0DB56C827E66FA3035CED6E3E123" KeyPath="yes" Source="$(var.WindowsServiceHost.TargetDir)\Castle.ActiveRecord.dll" />
</Component>
<Component Id="cmpCD33B68B2028B11161C5509206174D37" Guid="248DAA3F-EC3C-44E5-A57A-DD7090222123">
<File Id="fil98E1300420674E5F83417696A895A123" KeyPath="yes" Source="$(var.WindowsServiceHost.TargetDir)\Castle.Components.Validator.dll" />
</Component>
<Component Id="cmp4AE2CD167FF4894E9076AF5FC612D123" Guid="D7BB86D2-A384-4AAE-8D52-B0877B849123">
<File Id="fil808D19806529ABA1617D818072819123" KeyPath="yes" Source="$(var.WindowsServiceHost.TargetDir)\Castle.Core.dll" />
</Component>
<Component Id="cmpD9F8C495CF8479B78BC318E8E9DAA123" Guid="DA1C4B1F-FE3C-42D2-A273-39BFB2FB7123">
<File Id="fil2EBE8BAEA1EB66844366CCC4FD863123" KeyPath="yes" Source="$(var.WindowsServiceHost.TargetDir)\Castle.Facilities.WcfIntegration.dll" />
</Component>
<Component Id="cmp3F6A205A397BEA19BBA40D18483BD123" Guid="2FDB99B1-D558-4750-A3DB-00D8EB1C1123">
<File Id="fil151C8FBAEDA5D4BDEB438F301EAE7123" KeyPath="yes" Source="$(var.WindowsServiceHost.TargetDir)\Castle.Windsor.dll" />
</Component>
<Component Id="cmpC070BF8C300741A523BD7ED7CBB9C123" Guid="71DDC933-8912-4CEB-9257-FE07A0A3C123">
<File Id="filD577F4DF6A5A8E2CC82379AC96025123" KeyPath="yes" Source="$(var.WindowsServiceHost.TargetDir)\Viewer.Viewer.DAL.dll" />
</Component>
<Component Id="cmp38F30287B63682CF5E25FFED1C597123" Guid="896B54CA-6279-48A2-A20D-6C32D9370123">
<File Id="fil2E5F30135D3485052620C0369A0C8123" KeyPath="yes" Source="$(var.WindowsServiceHost.TargetDir)\Viewer.Viewer.exe" />
<!-- This is the problem I was having - I was not able to reference this component and this is not supported yes as based on hours of googling -->
<!-- We're able to define almost anything on how the service is configured, under which user, etc -->
<ServiceInstall Id="ServiceInstaller" Type="ownProcess" Vital="yes" Name="ViewerService"
DisplayName="Viewer Service" Description="Viewer service handles all user requests and manages tasks."
Start="auto" Account="[SERVICEACCOUNT]" Password="[SERVICEPASSWORD]" ErrorControl="ignore" Interactive="no">
<util:ServiceConfig FirstFailureActionType="restart" SecondFailureActionType="restart" ThirdFailureActionType="restart" />
</ServiceInstall>
<ServiceControl Id="StartService" Start="install" Stop="both" Remove="uninstall" Name="ViewerService" Wait="yes" />
</Component>
<Component Id="cmpF4715A23C1FF23A034E3C5D7E9899123" Guid="5439277D-DA70-476D-AFA3-A7E21792B123">
<File Id="filD6D2807DE16A409F1A2667BA03ED8123" KeyPath="yes" Source="$(var.WindowsServiceHost.TargetDir)\Viewer.exe.config" />
</Component>
<Component Id="cmpED6174C35AEBF8A8918AC859C9681123" Guid="84A5A3C2-A5DE-40AB-8ADC-31D2A5C1E123">
<File Id="fil5DD49061C2ED546B40CEED5FC1BD2123" KeyPath="yes" Source="$(var.WindowsServiceHost.TargetDir)\Viewer.Library.dll" />
</Component>
<Component Id="cmpB2A2EA83D72F4C7290397730910A4123" Guid="6A8F8C8A-47E7-4A70-B05C-92EA6711B123">
<File Id="filF3891F073E13532E343276EC37F96123" KeyPath="yes" Source="$(var.WindowsServiceHost.TargetDir)\PstLibrary.dll" />
</Component>
<Component Id="cmpEBE3708427CCDA04E12DE366A56F4123" Guid="60645E54-C07B-41B3-B219-4B7CECC5A123">
<File Id="fil06760C8D25183C8A8CF53F339D6BC123" KeyPath="yes" Source="$(var.WindowsServiceHost.TargetDir)\Iesi.Collections.dll" />
</Component>
<Component Id="cmp2B6E39BC25CC0CDCEC3DAC9E80C14123" Guid="6728EDE3-FCCD-4FC1-9032-2EA6F84E7123">
<File Id="fil3CA8B6115A016E51F3BA10386CAEE123" KeyPath="yes" Source="$(var.WindowsServiceHost.TargetDir)\Ionic.Zip.Reduced.dll" />
</Component>
<Component Id="cmp95FFFFB1FF4FE88C7ABFAFDC94AFA123" Guid="354B5354-4134-4225-9FA8-B6EBD1566123">
<File Id="filD2AD4A87E4FFD97570BD414BF64D2123" KeyPath="yes" Source="$(var.WindowsServiceHost.TargetDir)\LogModule.dll" />
</Component>
<Component Id="cmp06CFD0EF8C78731C8FE99058BA827123" Guid="13D3CCD4-A068-40F7-91F7-01BD9DAC7123">
<File Id="filC52F7EC41731AA5B6D39C500DF546123" KeyPath="yes" Source="$(var.WindowsServiceHost.TargetDir)\Lucene.Net.dll" />
</Component>
<Component Id="cmp02134B521CDB778B256053B705B39123" Guid="AB850CDB-C591-47C4-876A-00744AFAC123">
<File Id="fil8B09A9C2BC8D71A0E5E923F6F4039123" KeyPath="yes" Source="$(var.WindowsServiceHost.TargetDir)\MailBee.NET.dll" />
</Component>
<Component Id="cmp0732D020141A27B3EF606680AF63C123" Guid="39446EE7-47AE-4757-B5A4-DED57F7CE123">
<File Id="fil194D74862CE83A0371D6324FE1C0D123" KeyPath="yes" Source="..\_dependencies\Interop.Redemption.dll" />
</Component>
<Component Id="cmp0732D020141A27B3EF606680AF632123" Guid="39446EE7-47AE-4757-B5A4-DED57F7C2123">
<File Id="fil194D74862CE83A0371D6324FE1C02123" KeyPath="yes" Source="..\_dependencies\Redemption64.dll" />
</Component>
<Component Id="cmp9D56D720C5BABC0701758947084E5123" Guid="E5C9921B-AA90-4B88-898F-5A3C6D2F7123">
<File Id="filFEE1876E7EF6CE4F720645154DFD8123" KeyPath="yes" Source="$(var.WindowsServiceHost.TargetDir)\NHibernate.ByteCode.Castle.dll" />
</Component>
<Component Id="cmp48A389F21271FDC5825A9C1B25E82123" Guid="D485D984-1568-4A28-B2EC-EFE9791B7123">
<File Id="fil6EDFA9A322A7AB6A8E262D0DB4F60123" KeyPath="yes" Source="$(var.WindowsServiceHost.TargetDir)\NHibernate.dll" />
</Component>
<Component Id="cmpFEBBE1308148FADB702D2C8F4D13E123" Guid="725DD9FB-61EC-48F8-A988-916C30C73123">
<File Id="fil5145831B362C7509226E3A90E8FF2123" KeyPath="yes" Source="$(var.WindowsServiceHost.TargetDir)\NHibernate.Search.dll" />
</Component>
<Component Id="cmpEED54193D815302FC314DB0A2C9F8123" Guid="DD277B4A-63F4-4988-BA83-D9AF1FC89123">
<File Id="filF81E55DF73063A3872976B67B6628123" KeyPath="yes" Source="$(var.WindowsServiceHost.TargetDir)\Library.dll" />
</Component>
<Component Id="cmpA42846C9FB9AE5A84F07BCD1C1077123" Guid="7A89E8A4-D5DC-4EB2-A80B-BB3455B2F123">
<File Id="fil10DFB7AB70BD839083EA5F5DCA22C123" KeyPath="yes" Source="$(var.WindowsServiceHost.TargetDir)\Processing.dll" />
</Component>
<Component Id="cmpE88CBB7A43EF8781FD98762843CF1123" Guid="862E6578-5507-4128-89CA-877315A88123">
<File Id="fil6095C78A39C6633B24FADCC044720123" KeyPath="yes" Source="$(var.WindowsServiceHost.TargetDir)\RedemptionWrapper.dll" />
</Component>
<Component Id="cmp74BE405C599A7B2BFF4B24B035404123" Guid="65632DE4-45A3-4C81-911F-8E0EA7073123">
<File Id="fil9FAD52E634F2925DB072CBBAE8AC5123" KeyPath="yes" Source="$(var.WindowsServiceHost.TargetDir)\Remotion.Data.Linq.dll" />
</Component>
<Directory Id="dirD9D25461613D53ECC73127337CA03123" Name="Licenses">
<Component Id="cmpC47DFFE5D48426458E24BE6D0A83C123" Guid="4F3CFB3D-4E7A-4430-8EC6-3403EB856123">
<File Id="filF3CFC81B4D04F6521220038AE4103123" KeyPath="yes" Source="..\Common\Licenses\Antlr3.license.txt" />
</Component>
<Component Id="cmp322E81F6D6B5D7FFE823EAEABAE77123" Guid="E48BC22E-682C-4D87-BABF-1E71F6AE2123">
<File Id="fil7294E69E9C2DDF5F09B62BA6E2EB1123" KeyPath="yes" Source="..\Common\Licenses\Castle.license.txt" />
</Component>
<Component Id="cmp5537750B07AA6621D099EA533E58C123" Guid="412C1F3B-1A6C-444F-8645-4503F484F123">
<File Id="filFFF3C0457CC60E6EC076FBB3DD232123" KeyPath="yes" Source="..\Common\Licenses\Iesi.Collections.license.txt" />
</Component>
<Component Id="cmp92EF42C91FD5F2D0797844A57BE78123" Guid="E35E3446-8DD2-4DE0-B7FE-E27556D8D123">
<File Id="filA9F4D112BA2C37F6067E328E8C972123" KeyPath="yes" Source="..\Common\Licenses\Ionic.Zip.license.txt" />
</Component>
<Component Id="cmpD6E1D6312AA116069E68B968F9AED123" Guid="B670C6F0-901F-4049-A256-406B77F0E123">
<File Id="filC50888C92A23713C5CE5FA816A8F9123" KeyPath="yes" Source="..\Common\Licenses\Lucene.Net.license.txt" />
</Component>
<Component Id="cmp1EEBF5BABE23C2C767438072E6410123" Guid="3799AA4F-A169-41A1-A1DE-907F315E3123">
<File Id="filE39771746641899F88B2A3B05E9AA123" KeyPath="yes" Source="..\Common\Licenses\NHibernate.license.txt" />
</Component>
<Component Id="cmpCF5ECE8D2EADADA313278BA15AF99123" Guid="94C3D676-8B2B-4AAE-A4BC-226763BEE123">
<File Id="filC1AA47E8984A0651CDA4689D2A768123" KeyPath="yes" Source="..\Common\Licenses\NLog.license.txt" />
</Component>
<Component Id="cmp599BAD3717C0FCEE410496C8E8066123" Guid="CF247694-83FE-456D-8645-55EDF88AD123">
<File Id="filF046615251B088B6CBFB5383F775F123" KeyPath="yes" Source="..\Common\Licenses\Remotion.Data.Linq.license.txt" />
</Component>
</Directory>
</DirectoryRef>
</Fragment>
<Fragment>
<ComponentGroup Id="WindowsServiceHost_Project">
<ComponentRef Id="cmpF563E3CE297225623330C6BDFBFCD123" />
<ComponentRef Id="cmp353671C776668DEF5DCC15C233E2C123" />
<ComponentRef Id="cmpCD33B68B2028B11161C5509206174123" />
<ComponentRef Id="cmp4AE2CD167FF4894E9076AF5FC612D123" />
<ComponentRef Id="cmpD9F8C495CF8479B78BC318E8E9DAA123" />
<ComponentRef Id="cmp3F6A205A397BEA19BBA40D18483BD123" />
<ComponentRef Id="cmpC070BF8C300741A523BD7ED7CBB9C123" />
<ComponentRef Id="cmp38F30287B63682CF5E25FFED1C597123" />
<ComponentRef Id="cmpF4715A23C1FF23A034E3C5D7E9899123" />
<ComponentRef Id="cmpED6174C35AEBF8A8918AC859C9681123" />
<ComponentRef Id="cmpB2A2EA83D72F4C7290397730910A4123" />
<ComponentRef Id="cmpEBE3708427CCDA04E12DE366A56F4123" />
<ComponentRef Id="cmp2B6E39BC25CC0CDCEC3DAC9E80C14123" />
<ComponentRef Id="cmp95FFFFB1FF4FE88C7ABFAFDC94AFA123" />
<ComponentRef Id="cmp06CFD0EF8C78731C8FE99058BA827123" />
<ComponentRef Id="cmp02134B521CDB778B256053B705B39123" />
<ComponentRef Id="cmp9D56D720C5BABC0701758947084E5123" />
<ComponentRef Id="cmp48A389F21271FDC5825A9C1B25E82123" />
<ComponentRef Id="cmpFEBBE1308148FADB702D2C8F4D13E123" />
<ComponentRef Id="cmpEED54193D815302FC314DB0A2C9F8123" />
<ComponentRef Id="cmp74BE405C599A7B2BFF4B24B035404123" />
<ComponentRef Id="cmpC47DFFE5D48426458E24BE6D0A83C123" />
<ComponentRef Id="cmp322E81F6D6B5D7FFE823EAEABAE77123" />
<ComponentRef Id="cmp5537750B07AA6621D099EA533E58C123" />
<ComponentRef Id="cmp92EF42C91FD5F2D0797844A57BE78123" />
<ComponentRef Id="cmpD6E1D6312AA116069E68B968F9AED123" />
<ComponentRef Id="cmp1EEBF5BABE23C2C767438072E6410123" />
<ComponentRef Id="cmpCF5ECE8D2EADADA313278BA15AF99123" />
<ComponentRef Id="cmp599BAD3717C0FCEE410496C8E8066123" />
<ComponentRef Id="cmp0732D020141A27B3EF606680AF63C123" />
<ComponentRef Id="cmpA42846C9FB9AE5A84F07BCD1C1077123" />
<ComponentRef Id="cmpE88CBB7A43EF8781FD98762843CF1123" />
<ComponentRef Id="cmp0732D020141A27B3EF606680AF632123" />
</ComponentGroup>
</Fragment>
</Wix>
【问题讨论】:
您可以发布您用于安装服务的组件代码吗? 我用上面的组件代码编辑我的帖子。谢谢。 该错误具有误导性。在这里查看我的答案:***.com/questions/9588002/… 可能我在 TFS 上的构建定义有问题,因为如果我将构建安装程序并从文件夹中抓取并传输到虚拟机,它就会通过。但是当我创建新版本时,安装程序会通过启动服务获取堆栈。哦,我的上帝,这将是另一个挑战 :) 无论如何,谢谢。 运气好吗?如果是,请分享位置 【参考方案1】:只需通过分离服务控制来解决相同的问题。这样做
<ServiceControl Id="scStorageServiceReporter_Start"
Name="Dhcp"
Start="install"
Wait="no" />
<ServiceControl Id="scStorageServiceReporter_Stop"
Name="Dhcp"
Stop="uninstall"
Remove="uninstall"
Wait="yes" />
而不是这个
<ServiceControl
Id="scStorageReporter"
Name="StorageReporterService"
Start="install"
Stop="both"
Remove="uninstall"
Wait="yes"/>
【讨论】:
这得到了我的支持。虽然它没有完全解决问题,但它让我可以通过 Windows 事件查看器查看实际问题(我忘了复制配置文件)。【参考方案2】:查看您的 sn-p 这可能是一条红鲱鱼,但如果您的安装程序也在向 GAC 添加项目(您的似乎不是 - 因此是红鲱鱼),我已经看到了这个完全相同的错误.这是因为在服务控制尝试启动服务之后之后,GAC 的组件才可用。在这种情况下,“权限”消息也不准确!
【讨论】:
【参考方案3】:您可以尝试重建 wix 项目。我也遇到了这个问题,重建项目已经解决了。
【讨论】:
【参考方案4】:在我的特定情况下,问题是我的 Windows 服务使用的配置 *.config
文件无效,因为该服务无法启动。我花了一段时间才弄清楚问题出在哪里。
也许它会帮助某人。
【讨论】:
【参考方案5】:您也可能会收到此错误,因为开始运行的应用程序在启动后不久就会引发异常。例如,我收到此错误是因为我的代码中有 Console.ReadKey。
检查是否是这种情况的最佳方法是检查您的应用程序日志。默认情况下,Windows 事件查看器不会提供任何有用的信息。
【讨论】:
以上是关于Wix 安装程序:验证您是不是有足够的权限来启动系统服务的主要内容,如果未能解决你的问题,请参考以下文章