Wix,安装 windows 服务权限不足错误
Wix , Install windows service insufficient privellages error
我想安装一个 windows 服务,所以我遵循了所有的建议,添加了一个有权限的用户,但是在启动服务时,如果你有足够的权限,会给出错误检查,下面是 wix 部分 I使用
<Fragment>
<ComponentGroup Id="MedecxService_ServiceComponents">
<Component Id="MedecxService_ServiceComponent" Directory="MedecxService_INSTALLFOLDER" Guid="ab621e57-b52d-4bbe-853e-a5f0ca312a73">
<File Id="fil1DBD278DE49E2EF052BB6AD6321F3F88" Source="$(var.SourceOutput)\BarcodeLib.dll" Vital="yes" />
<File Id="filC2A7B546D16126D43DBD2D104D432F8E" Source="$(var.SourceOutput)\BouncyCastle.Crypto.dll" Vital="yes" />
<File Id="fil7DFD2A683DC5DD9AE627D7E981F10CF0" Source="$(var.SourceOutput)\EntityFramework.dll" Vital="yes" />
<File Id="filA912EE64A53B15C1D42E5728EB204CE7" Source="$(var.SourceOutput)\EntityFramework.SqlServer.dll" Vital="yes" />
<File Id="fil753895A598A12643844071A70FA84CE0" Source="$(var.SourceOutput)\EntityFramework.SqlServer.xml" Vital="yes" />
<File Id="filFC1348D75FED056A10197E522A36B6BA" Source="$(var.SourceOutput)\EntityFramework.xml" Vital="yes" />
<File Id="fil7252DEC8E62AECCABE47731A9AD8AF8F" Source="$(var.SourceOutput)\Excel.dll" Vital="yes" />
<File Id="fil2CE2A8A8259B04B3F97DD1DAFE40EDB7" Source="$(var.SourceOutput)\Helpers.dll" Vital="yes" />
<File Id="filC4FB21276BDBCDD1F4E7BF8A7F45C4A5" Source="$(var.SourceOutput)\ICSharpCode.SharpZipLib.dll" Vital="yes" />
<File Id="fil42C2BC798D2D94A68DDD00C91ABA994E" Source="$(var.SourceOutput)\installSVC.bat" Vital="yes" />
<File Id="filB02D1566FC3DC0D161ABD38AD5FC64DC" Source="$(var.SourceOutput)\InstallUtil.InstallLog" Vital="yes" />
<File Id="fil954AFA2395EEF3231797A75EDB77B0BE" Source="$(var.SourceOutput)\Ksys.BusinessLayer.dll" Vital="yes" />
<File Id="fil7ACD4014B5B636037386C4BDF79C1B78" Source="$(var.SourceOutput)\Ksys.Config.dll" Vital="yes" />
<File Id="fil9D674EB595DEF40D9EB7E7F9385692F8" Source="$(var.SourceOutput)\Ksys.DataAccessLayer.dll" Vital="yes" />
<File Id="fil5C85C3A51F97BECB30D1FD009D0A8F40" Source="$(var.SourceOutput)\Ksys.EF.dll" Vital="yes" />
<File Id="filA856B94EF75EB5736F2FF15FFE9282AE" Source="$(var.SourceOutput)\ksys.logger.dll" Vital="yes" />
<File Id="fil663E50F269D1C3C837A6CCF85F2A9300" Source="$(var.SourceOutput)\Ksys.Model.dll" Vital="yes" />
<File Id="filA0113B26097E9D1E15349612C1220CD4" Source="$(var.SourceOutput)\Ksys.Serializer.dll" Vital="yes" />
<File Id="fil5D63BB77482AF07C528276A85E2DA9EA" Source="$(var.SourceOutput)\LinqKit.dll" Vital="yes" />
<File Id="filE10B7796C9698A8AFAC095C006D48B28" Source="$(var.SourceOutput)\LinqKit.xml" Vital="yes" />
<File Id="fil533B9EB0CA736575A79518F23236D1E0" Source="$(var.SourceOutput)\MedexCloudWindowsService.exe" Vital="yes" />
<File Id="filFFC294FA751B1E0AFB84F1F322CD0074" Source="$(var.SourceOutput)\MedexCloudWindowsService.exe.config" Vital="yes" />
<File Id="fil69C4144F6FBAFBE9D9BEE80F9EE9F166" Source="$(var.SourceOutput)\MedexCloudWindowsService.InstallLog" Vital="yes" />
<File Id="fil4CA61FA9154292B5DEACC620C7D7CFBE" Source="$(var.SourceOutput)\MedexCloudWindowsService.InstallState" Vital="yes" />
<File Id="fil7F15BA8094994ADAD04DA907E934B5BD" Source="$(var.SourceOutput)\Newtonsoft.Json.dll" Vital="yes" />
<File Id="fil9BA73B8312B77DA2A8D16A6C05D0598B" Source="$(var.SourceOutput)\Newtonsoft.Json.xml" Vital="yes" />
<File Id="fil49D7CB3EEC543B549EE3BE62A5F30A21" Source="$(var.SourceOutput)\NLog.config" Vital="yes" />
<File Id="filD99192F3EF926B0696A896924D4A93A9" Source="$(var.SourceOutput)\NLog.dll" Vital="yes" />
<File Id="fil88CDAADE20F6C0BABA487DCEA46ED96F" Source="$(var.SourceOutput)\NLog.xml" Vital="yes" />
<File Id="fil5AEDF8895277D5A2AA598DDAFF1864E9" Source="$(var.SourceOutput)\PF.SecurityEngine.dll" Vital="yes" />
<File Id="fil1F3080066204F089C69EB71515856B08" Source="$(var.SourceOutput)\Telerik.Windows.Controls.dll" Vital="yes" />
<File Id="filD55FBBEEEACF8F9178263C092CE65233" Source="$(var.SourceOutput)\Telerik.Windows.Controls.Input.dll" Vital="yes" />
<File Id="filDC7E32BCE263A15047412BEF5CA27BB9" Source="$(var.SourceOutput)\Telerik.Windows.Controls.Navigation.dll" Vital="yes" />
<File Id="fil51DF87675977D541123ACB4D746195AE" Source="$(var.SourceOutput)\Telerik.Windows.Controls.ScheduleView.dll" Vital="yes" />
<File Id="fil426643C3E4EA3F59203804FB1B3737A6" Source="$(var.SourceOutput)\Telerik.Windows.Data.dll" Vital="yes" />
<File Id="fil74FBFF28BAE103F0D04C443B98393E70" Source="$(var.SourceOutput)\UninstallSVC.bat" Vital="yes" />
<File Id="filDE20D180F79A557C4356E0E6A2F651EA" Source="$(var.SourceOutput)\Ar-EG\Helpers.resources.dll" Vital="yes" />
<File Id="fil23324D44B270D2DDB61E42F72C82FA42" Source="$(var.SourceOutput)\Culture\Resources.Ar-EG.Designer.cs" Vital="yes" />
<File Id="fil309B641D96FFD04503F6706E7832137E" Source="$(var.SourceOutput)\Culture\Resources.Ar-EG.resx" Vital="yes" />
<File Id="fil5131FA2051CE202BE8A87A73423D3188" Source="$(var.SourceOutput)\Culture\Resources.Designer.cs" Vital="yes" />
<File Id="fil4B63438F9C7A1A62CE7519085FD7EF7F" Source="$(var.SourceOutput)\Culture\Resources.EN-US.Designer.cs" Vital="yes" />
<File Id="fil88BF0A38DDF70B974AE6154BCD6B56DA" Source="$(var.SourceOutput)\Culture\Resources.EN-US.resx" Vital="yes" />
<File Id="filC98495569CBB3CCB9CCC9B0F550AB54C" Source="$(var.SourceOutput)\Culture\Resources.resx" Vital="yes" />
<File Id="filCC289B0C10B0E547830E23254F453E0E" Source="$(var.SourceOutput)\EN-US\Helpers.resources.dll" Vital="yes" />
<util:User Id="user" CreateUser="yes" Name="serviceaccount" Password="p2Ekutrekac34ph2" LogonAsService="yes" UpdateIfExists="yes" RemoveOnUninstall="yes" PasswordNeverExpires="yes" FailIfExists="no" Domain="[ComputerName]" CanNotChangePassword="yes" Disabled="no" PasswordExpired="no" />
<ServiceInstall Id="QBServiceInstaller" Type="ownProcess" Vital="yes" Name="MedexCloudWindowsService.exe" DisplayName="medexCloud Backend service" Description="medexCloud Backend service" Start="auto" Account=".\serviceaccount" Password="p2Ekutrekac34ph2" ErrorControl="ignore" Interactive="no" />
<ServiceControl Id="MedecxServiceStartService" Start="install" Stop="both" Remove="uninstall" Name="MedexCloudWindowsService.exe" Wait="yes" />
</Component>
</ComponentGroup>
</Fragment>
"insufficient privilege" 错误只是一个猜测,通常不是问题的原因。所以,我将列出常见的嫌疑人:
服务代码在启动区坏了,响应了启动消息或OnStart事件,然后死机或没有及时响应启动。这可以通过让服务创建其正在执行的操作的跟踪日志来测试,无论如何这对于帮助调试服务都是非常宝贵的。
缺少依赖项 a) 未包含在安装或先决条件中或 b) 正在安装到 GAC 或 WinSxS,因此在服务启动时不可用。
您的 WiX 有一处不正确。根据我对您的消息来源的了解,这实际上似乎是最可能的原因。 ServiceInstall 要求服务二进制文件是包含组件的密钥路径。据我所知,您的服务 exe 不是组件的关键路径,因此我不清楚您的服务是否会正确安装。在任何情况下,最佳做法是每个组件一个文件。
我想安装一个 windows 服务,所以我遵循了所有的建议,添加了一个有权限的用户,但是在启动服务时,如果你有足够的权限,会给出错误检查,下面是 wix 部分 I使用
<Fragment>
<ComponentGroup Id="MedecxService_ServiceComponents">
<Component Id="MedecxService_ServiceComponent" Directory="MedecxService_INSTALLFOLDER" Guid="ab621e57-b52d-4bbe-853e-a5f0ca312a73">
<File Id="fil1DBD278DE49E2EF052BB6AD6321F3F88" Source="$(var.SourceOutput)\BarcodeLib.dll" Vital="yes" />
<File Id="filC2A7B546D16126D43DBD2D104D432F8E" Source="$(var.SourceOutput)\BouncyCastle.Crypto.dll" Vital="yes" />
<File Id="fil7DFD2A683DC5DD9AE627D7E981F10CF0" Source="$(var.SourceOutput)\EntityFramework.dll" Vital="yes" />
<File Id="filA912EE64A53B15C1D42E5728EB204CE7" Source="$(var.SourceOutput)\EntityFramework.SqlServer.dll" Vital="yes" />
<File Id="fil753895A598A12643844071A70FA84CE0" Source="$(var.SourceOutput)\EntityFramework.SqlServer.xml" Vital="yes" />
<File Id="filFC1348D75FED056A10197E522A36B6BA" Source="$(var.SourceOutput)\EntityFramework.xml" Vital="yes" />
<File Id="fil7252DEC8E62AECCABE47731A9AD8AF8F" Source="$(var.SourceOutput)\Excel.dll" Vital="yes" />
<File Id="fil2CE2A8A8259B04B3F97DD1DAFE40EDB7" Source="$(var.SourceOutput)\Helpers.dll" Vital="yes" />
<File Id="filC4FB21276BDBCDD1F4E7BF8A7F45C4A5" Source="$(var.SourceOutput)\ICSharpCode.SharpZipLib.dll" Vital="yes" />
<File Id="fil42C2BC798D2D94A68DDD00C91ABA994E" Source="$(var.SourceOutput)\installSVC.bat" Vital="yes" />
<File Id="filB02D1566FC3DC0D161ABD38AD5FC64DC" Source="$(var.SourceOutput)\InstallUtil.InstallLog" Vital="yes" />
<File Id="fil954AFA2395EEF3231797A75EDB77B0BE" Source="$(var.SourceOutput)\Ksys.BusinessLayer.dll" Vital="yes" />
<File Id="fil7ACD4014B5B636037386C4BDF79C1B78" Source="$(var.SourceOutput)\Ksys.Config.dll" Vital="yes" />
<File Id="fil9D674EB595DEF40D9EB7E7F9385692F8" Source="$(var.SourceOutput)\Ksys.DataAccessLayer.dll" Vital="yes" />
<File Id="fil5C85C3A51F97BECB30D1FD009D0A8F40" Source="$(var.SourceOutput)\Ksys.EF.dll" Vital="yes" />
<File Id="filA856B94EF75EB5736F2FF15FFE9282AE" Source="$(var.SourceOutput)\ksys.logger.dll" Vital="yes" />
<File Id="fil663E50F269D1C3C837A6CCF85F2A9300" Source="$(var.SourceOutput)\Ksys.Model.dll" Vital="yes" />
<File Id="filA0113B26097E9D1E15349612C1220CD4" Source="$(var.SourceOutput)\Ksys.Serializer.dll" Vital="yes" />
<File Id="fil5D63BB77482AF07C528276A85E2DA9EA" Source="$(var.SourceOutput)\LinqKit.dll" Vital="yes" />
<File Id="filE10B7796C9698A8AFAC095C006D48B28" Source="$(var.SourceOutput)\LinqKit.xml" Vital="yes" />
<File Id="fil533B9EB0CA736575A79518F23236D1E0" Source="$(var.SourceOutput)\MedexCloudWindowsService.exe" Vital="yes" />
<File Id="filFFC294FA751B1E0AFB84F1F322CD0074" Source="$(var.SourceOutput)\MedexCloudWindowsService.exe.config" Vital="yes" />
<File Id="fil69C4144F6FBAFBE9D9BEE80F9EE9F166" Source="$(var.SourceOutput)\MedexCloudWindowsService.InstallLog" Vital="yes" />
<File Id="fil4CA61FA9154292B5DEACC620C7D7CFBE" Source="$(var.SourceOutput)\MedexCloudWindowsService.InstallState" Vital="yes" />
<File Id="fil7F15BA8094994ADAD04DA907E934B5BD" Source="$(var.SourceOutput)\Newtonsoft.Json.dll" Vital="yes" />
<File Id="fil9BA73B8312B77DA2A8D16A6C05D0598B" Source="$(var.SourceOutput)\Newtonsoft.Json.xml" Vital="yes" />
<File Id="fil49D7CB3EEC543B549EE3BE62A5F30A21" Source="$(var.SourceOutput)\NLog.config" Vital="yes" />
<File Id="filD99192F3EF926B0696A896924D4A93A9" Source="$(var.SourceOutput)\NLog.dll" Vital="yes" />
<File Id="fil88CDAADE20F6C0BABA487DCEA46ED96F" Source="$(var.SourceOutput)\NLog.xml" Vital="yes" />
<File Id="fil5AEDF8895277D5A2AA598DDAFF1864E9" Source="$(var.SourceOutput)\PF.SecurityEngine.dll" Vital="yes" />
<File Id="fil1F3080066204F089C69EB71515856B08" Source="$(var.SourceOutput)\Telerik.Windows.Controls.dll" Vital="yes" />
<File Id="filD55FBBEEEACF8F9178263C092CE65233" Source="$(var.SourceOutput)\Telerik.Windows.Controls.Input.dll" Vital="yes" />
<File Id="filDC7E32BCE263A15047412BEF5CA27BB9" Source="$(var.SourceOutput)\Telerik.Windows.Controls.Navigation.dll" Vital="yes" />
<File Id="fil51DF87675977D541123ACB4D746195AE" Source="$(var.SourceOutput)\Telerik.Windows.Controls.ScheduleView.dll" Vital="yes" />
<File Id="fil426643C3E4EA3F59203804FB1B3737A6" Source="$(var.SourceOutput)\Telerik.Windows.Data.dll" Vital="yes" />
<File Id="fil74FBFF28BAE103F0D04C443B98393E70" Source="$(var.SourceOutput)\UninstallSVC.bat" Vital="yes" />
<File Id="filDE20D180F79A557C4356E0E6A2F651EA" Source="$(var.SourceOutput)\Ar-EG\Helpers.resources.dll" Vital="yes" />
<File Id="fil23324D44B270D2DDB61E42F72C82FA42" Source="$(var.SourceOutput)\Culture\Resources.Ar-EG.Designer.cs" Vital="yes" />
<File Id="fil309B641D96FFD04503F6706E7832137E" Source="$(var.SourceOutput)\Culture\Resources.Ar-EG.resx" Vital="yes" />
<File Id="fil5131FA2051CE202BE8A87A73423D3188" Source="$(var.SourceOutput)\Culture\Resources.Designer.cs" Vital="yes" />
<File Id="fil4B63438F9C7A1A62CE7519085FD7EF7F" Source="$(var.SourceOutput)\Culture\Resources.EN-US.Designer.cs" Vital="yes" />
<File Id="fil88BF0A38DDF70B974AE6154BCD6B56DA" Source="$(var.SourceOutput)\Culture\Resources.EN-US.resx" Vital="yes" />
<File Id="filC98495569CBB3CCB9CCC9B0F550AB54C" Source="$(var.SourceOutput)\Culture\Resources.resx" Vital="yes" />
<File Id="filCC289B0C10B0E547830E23254F453E0E" Source="$(var.SourceOutput)\EN-US\Helpers.resources.dll" Vital="yes" />
<util:User Id="user" CreateUser="yes" Name="serviceaccount" Password="p2Ekutrekac34ph2" LogonAsService="yes" UpdateIfExists="yes" RemoveOnUninstall="yes" PasswordNeverExpires="yes" FailIfExists="no" Domain="[ComputerName]" CanNotChangePassword="yes" Disabled="no" PasswordExpired="no" />
<ServiceInstall Id="QBServiceInstaller" Type="ownProcess" Vital="yes" Name="MedexCloudWindowsService.exe" DisplayName="medexCloud Backend service" Description="medexCloud Backend service" Start="auto" Account=".\serviceaccount" Password="p2Ekutrekac34ph2" ErrorControl="ignore" Interactive="no" />
<ServiceControl Id="MedecxServiceStartService" Start="install" Stop="both" Remove="uninstall" Name="MedexCloudWindowsService.exe" Wait="yes" />
</Component>
</ComponentGroup>
</Fragment>
"insufficient privilege" 错误只是一个猜测,通常不是问题的原因。所以,我将列出常见的嫌疑人:
服务代码在启动区坏了,响应了启动消息或OnStart事件,然后死机或没有及时响应启动。这可以通过让服务创建其正在执行的操作的跟踪日志来测试,无论如何这对于帮助调试服务都是非常宝贵的。
缺少依赖项 a) 未包含在安装或先决条件中或 b) 正在安装到 GAC 或 WinSxS,因此在服务启动时不可用。
您的 WiX 有一处不正确。根据我对您的消息来源的了解,这实际上似乎是最可能的原因。 ServiceInstall 要求服务二进制文件是包含组件的密钥路径。据我所知,您的服务 exe 不是组件的关键路径,因此我不清楚您的服务是否会正确安装。在任何情况下,最佳做法是每个组件一个文件。