My recommendation would be to perform any other activities that the service 
performs itself during /install in a Windows Installer friendly fashion. The 
reason is that Windows Installer (and WiX standard custom actions) behave more 
robustly in the face of failures and associated rollback scenarios.

If you do decide to use a custom action to execute "service.exe /install" and 
"service.exe /uninstall" then remember to handle the following scenarios:
* Install
* Rollback Install
* Repair (Reinstall/Reconfigure)
* Rollback Repair (Reinstall/Reconfigure)
* Uninstall
* Rollback Uninstall
* Upgrade
* Rollback Upgrade

That's a lot of custom actions and it's going to be very difficult to know what 
to do in each scenario if you don't know what "service.exe /install" does.

Edwin G. Castro
Software Developer - Staff
Digital Channels
Fiserv
Office: 503-746-0643
Fax: 503-617-0291
www.fiserv.com
Please consider the environment before printing this e-mail

> -----Original Message-----
> From: Brad Lemings [mailto:b...@rebit.com]
> Sent: Thursday, May 19, 2011 4:21 PM
> To: General discussion for Windows Installer XML toolset.
> Subject: Re: [WiX-users] Debugging/Troubleshooting Service Installs
> 
> Hi Edwin,
> 
> I suspected this would be the case -- writing a custom action.  The service
> however must be executed with the /install option before it can be started
> so unless there's an alternative to writing a custom action, this is the only
> possible solution.
> 
> Thanks for the help.
> 
> Eric.
> 
> -----Original Message-----
> From: Castro, Edwin G. (Hillsboro) [mailto:edwin.cas...@fiserv.com]
> Sent: Thursday, May 19, 2011 4:24 PM
> To: General discussion for Windows Installer XML toolset.
> Subject: Re: [WiX-users] Debugging/Troubleshooting Service Installs
> 
> ...
> If you really want to execute your service with /install and /uninstall to 
> install
> and uninstall then you'll need to schedule a custom action to execute your
> service appropriately. I would *highly* discourage this course of action.
> 
> Edwin G. Castro
> Software Developer - Staff
> Digital Channels
> Fiserv
> Office: 503-746-0643
> Fax: 503-617-0291
> www.fiserv.com
> P Please consider the environment before printing this e-mail
> 
> 
> > -----Original Message-----
> > From: Brad Lemings [mailto:b...@rebit.com]
> > Sent: Thursday, May 19, 2011 1:43 PM
> > To: General discussion for Windows Installer XML toolset.
> > Subject: Re: [WiX-users] Debugging/Troubleshooting Service Installs
> >
> > Followup.  I have a better idea what the problem is.  Either msiexec
> > is not "installing" the service by executing it with the proper
> > /install argument or it is not executing the install command with
> Administrator privileges.
> >
> > >From the log, it appears that the /install option is specified so I'm
> > >guessing
> > the latter case is the real problem although its somewhat
> > inconceivable that the ServiceControl element does not imply
> Administrator privileges.
> >
> > I'm guessing the Account and Password attributes are the real culprit.
> > Now to prove it...
> >
> > -----Original Message-----
> > From: Brad Lemings [mailto:b...@rebit.com]
> > Sent: Thursday, May 19, 2011 1:33 PM
> > To: General discussion for Windows Installer XML toolset. (wix-
> > us...@lists.sourceforge.net)
> > Subject: [WiX-users] Debugging/Troubleshooting Service Installs
> >
> > Greetings,
> >
> > The following excerpt of a Wix file is supposed to install, stop,
> > start, and uninstall a service (exact names have been tweaked):
> >
> >       <Component Id='MySvc'
> >                  Guid="5E7A07C7-9299-4992-A601-EBB79D441A83"
> >                  Win64='$(var.Win64)'>
> >
> >         <File Id='MySvcExe'
> >               Source='$(var.TARGET_DIR)\$(var.MY_SERVICE_OUTPUT_NAME)'
> >               KeyPath='yes' Checksum='yes'/>
> >
> >         <ServiceInstall Id="InstallMySvc"
> >                         Name="$(var.MY_SERVICE_SVC_NAME)"
> >                         DisplayName="$(var.MY_SERVICE_DISPLAY_NAME)"
> >                         Type="ownProcess"
> >                         Start="auto"
> >                         Arguments="/install"
> >                         ErrorControl="normal"
> >                         Description="$(var.MY_SERVICE_DESCRIPTION)"
> >                         Account="[SERVICEACCOUNT]"
> >                         Password="[SERVICEPASSWORD]" />
> >         <ServiceControl Id="StartMySvc"
> >                         Name="$(var.MY_SERVICE_SVC_NAME)"
> >                         Start="install"
> >                         Wait="yes" />
> >         <ServiceControl Id="StopMySvcSvc"
> >                         Name="$(var.MY_SERVICE_SVC_NAME)"
> >                         Stop="both"
> >                         Wait="yes" />
> >         <ServiceControl Id="UninstallMySvcSvc"
> >                         Name="$(var.MY_SERVICE_SVC_NAME)"
> >                         Remove="uninstall" >
> >           <ServiceArgument>/uninstall</ServiceArgument>
> >         </ServiceControl>
> >       </Component>
> >
> > I'm trying to install the resulting .MSI with the following command:
> >
> > msiexec /norestart /lvx*+ mysvc.log /i mysvc.msi
> >
> > The install fails and msiexec reports via GUI that the service failed to 
> > start.
> > Part of the log shows this:
> >
> > MSI (s) (2C:D8) [13:17:05:419]: Executing op: RegCreateKey() MSI (s)
> > (2C:D8)
> > [13:17:05:419]: Executing op:
> > ActionStart(Name=InstallServices,Description=Installing new
> > services,Template=Service: [2]) MSI (s) (2C:D8) [13:17:05:419]: Executing
> op:
> > ProgressTotal(Total=1,Type=1,ByteEquivalent=1300000)
> > MSI (s) (2C:D8) [13:17:05:419]: Executing op: ServiceInstall(Name=My-
> > Svc,DisplayName=My Svc,ImagePath="C:\Program Files\My\My-Svc.exe"
> > /install,ServiceType=16,StartType=2,ErrorControl=1,,Dependencies=[~],,
> > ,Pas sword=**********,Description=My Backup Service,,) MSI (s) (2C:D8)
> > [13:17:06:060]: Executing op:
> > ActionStart(Name=RollbackServiceConfig,,)
> > MSI (s) (2C:D8) [13:17:06:060]: Executing op:
> >
> CustomActionSchedule(Action=RollbackServiceConfig,ActionType=3329,Sour
> >
> ce=BinaryData,Target=RollbackServiceConfig,CustomActionData=SchedServi
> > ceConfig)
> > MSI (s) (2C:D8) [13:17:06:060]: Executing op:
> > ActionStart(Name=ExecServiceConfig,,)
> > MSI (s) (2C:D8) [13:17:06:060]: Executing op:
> >
> CustomActionSchedule(Action=ExecServiceConfig,ActionType=3073,Source=
> >
> BinaryData,Target=ExecServiceConfig,CustomActionData=SchedServiceConfi
> > gEURMy-SvcEUR0EURrestartEURrestartEURnoneEUR1EUR60EUREUR)
> > MSI (s) (2C:D8) [13:17:06:060]: Creating MSIHANDLE (8) of type 790536
> > for thread 1496 MSI (s) (2C:34) [13:17:06:060]: Invoking remote custom
> action.
> > DLL: C:\Windows\Installer\MSIC5E2.tmp, Entrypoint: ExecServiceConfig
> > MSI
> > (s) (2C:20) [13:17:06:060]: Generating random cookie.
> > MSI (s) (2C:20) [13:17:06:075]: Created Custom Action Server with PID
> > 784 (0x310).
> > MSI (s) (2C:78) [13:17:06:091]: Running as a service.
> > MSI (s) (2C:78) [13:17:06:091]: Hello, I'm your 32bit Elevated custom
> > action server.
> > MSI (s) (2C!B8) [13:17:06:263]: Creating MSIHANDLE (9) of type 790531
> > for thread 3000 MSI (s) (2C!B8) [13:17:06:263]: Closing MSIHANDLE (9)
> > of type
> > 790531 for thread 3000 MSI (s) (2C:34) [13:17:06:263]: Closing
> > MSIHANDLE (8) of type 790536 for thread 1496 MSI (s) (2C:D8)
> [13:17:06:263]: Executing op:
> > ActionStart(Name=StartServices,Description=Starting
> > services,Template=Service: [1]) MSI (s) (2C:D8) [13:17:06:263]: Executing
> op:
> > ProgressTotal(Total=1,Type=1,ByteEquivalent=1300000)
> > MSI (s) (2C:D8) [13:17:06:263]: Executing op: ServiceControl(,Name=My-
> > Svc,Action=1,Wait=1,)
> > MSI (s) (2C:D8) [13:17:36:310]: Note: 1: 2205 2:  3: Error MSI (s)
> > (2C:D8)
> > [13:17:36:310]: Note: 1: 2228 2:  3: Error 4: SELECT `Message` FROM
> > `Error` WHERE `Error` = 1920 MSI (c) (FC:38) [13:17:36:310]: Font created.
> Charset:
> > Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg
> >
> > Error 1920. Service 'My Svc' (My-Svc) failed to start.  Verify that
> > you have sufficient privileges to start system services.
> > MSI (s) (2C:D8) [13:17:49:482]: Note: 1: 2205 2:  3: Error MSI (s)
> > (2C:D8)
> > [13:17:49:482]: Note: 1: 2228 2:  3: Error 4: SELECT `Message` FROM
> > `Error` WHERE `Error` = 1709 MSI (s) (2C:D8) [13:17:49:482]: Product:
> > My (64-bit) -- Error 1920. Service 'My Svc' (My-Svc) failed to start.
> > Verify that you have sufficient privileges to start system services.
> >
> > MSI (s) (2C:D8) [13:18:19:482]: Note: 1: 2205 2:  3: Error MSI (s)
> > (2C:D8)
> > [13:18:19:482]: Note: 1: 2228 2:  3: Error 4: SELECT `Message` FROM
> > `Error` WHERE `Error` = 1920 MSI (c) (FC:38) [13:18:19:482]: Font created.
> Charset:
> > Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg
> >
> > Error 1920. Service 'My Svc' (My-Svc) failed to start.  Verify that
> > you have sufficient privileges to start system services.
> > MSI (s) (2C:F0) [13:18:21:216]: I/O on thread 1796 could not be cancelled.
> > Error: 1168
> >
> > Even with all information being logged, there still isn't enough to
> > determine the problem.
> >
> > When I don't abort the install and the files are copied into their
> > final resting places, I can execute the following commands without any
> errors:
> >
> >                 My-Svc.exe /install
> >                 sc start My-Svc
> >
> > So it must be something wrong with the Wix file.  Any clues why the
> > service fails to start?  Any tips, references, resources, links useful
> > for debugging service installs using Wix?
> >
> > Any and all help appreciated.
> >
> > Eric.
> >
> > ----------------------------------------------------------------------
> > -------- What Every C/C++ and Fortran developer Should Know!
> > Read this article and learn how Intel has extended the reach of its
> > next- generation tools to help Windows* and Linux* C/C++ and Fortran
> > developers boost performance applications - including clusters.
> > http://p.sf.net/sfu/intel-dev2devmay
> > _______________________________________________
> > WiX-users mailing list
> > WiX-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/wix-users
> >
> > ----------------------------------------------------------------------
> > -------- What Every C/C++ and Fortran developer Should Know!
> > Read this article and learn how Intel has extended the reach of its
> > next- generation tools to help Windows* and Linux* C/C++ and Fortran
> > developers boost performance applications - including clusters.
> > http://p.sf.net/sfu/intel-dev2devmay
> > _______________________________________________
> > WiX-users mailing list
> > WiX-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/wix-users
> ------------------------------------------------------------------------------
> What Every C/C++ and Fortran developer Should Know!
> Read this article and learn how Intel has extended the reach of its next-
> generation tools to help Windows* and Linux* C/C++ and Fortran developers
> boost performance applications - including clusters.
> http://p.sf.net/sfu/intel-dev2devmay
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
> ------------------------------------------------------------------------------
> What Every C/C++ and Fortran developer Should Know!
> Read this article and learn how Intel has extended the reach of its next-
> generation tools to help Windows* and Linux* C/C++ and Fortran developers
> boost performance applications - including clusters.
> http://p.sf.net/sfu/intel-dev2devmay
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
------------------------------------------------------------------------------
What Every C/C++ and Fortran developer Should Know!
Read this article and learn how Intel has extended the reach of its 
next-generation tools to help Windows* and Linux* C/C++ and Fortran 
developers boost performance applications - including clusters. 
http://p.sf.net/sfu/intel-dev2devmay
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to