Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Installing a self-developed Windows Service

I'm trying to deploy a service that I wrote. Here's the InstallLog file:

Installing assembly 'c:\Users\brwatson\Development\Projects\TweetLinks\TweetLinkQueue\bin\Debug\TweetLinkQueue.exe'. Affected parameters are:    logtoconsole =     assemblypath = c:\Users\brwatson\Development\Projects\TweetLinks\TweetLinkQueue\bin\Debug\TweetLinkQueue.exe    logfile = c:\Users\brwatson\Development\Projects\TweetLinks\TweetLinkQueue\bin\Debug\TweetLinkQueue.InstallLog Installing service TweetLinkService... Creating EventLog source TweetLinkService in log Application... Rolling back assembly 'c:\Users\brwatson\Development\Projects\TweetLinks\TweetLinkQueue\bin\Debug\TweetLinkQueue.exe'. Affected parameters are:    logtoconsole =     assemblypath = c:\Users\brwatson\Development\Projects\TweetLinks\TweetLinkQueue\bin\Debug\TweetLinkQueue.exe    logfile = c:\Users\brwatson\Development\Projects\TweetLinks\TweetLinkQueue\bin\Debug\TweetLinkQueue.InstallLog Restoring event log to previous state for source TweetLinkService. An exception occurred during the Rollback phase of the System.Diagnostics.EventLogInstaller installer. System.Security.SecurityException: The source was not found, but some or all event logs could not be searched.  Inaccessible logs: Security. An exception occurred during the Rollback phase of the installation. This exception will be ignored and the rollback will continue. However, the machine might not fully revert to its initial state after the rollback is complete. 

As you can see, it's not working. I am not sure how to proceed, and have hit the wall with Bing and Google. I have set the Account to LocalSystem for the serviceProcessInstaller1. The code compiles fine, but now I would like to run the thing...any ideas? I am an administrator on my box, and I am running the command:

InstallUtil TweetLinkQueue.exe

from the VS2008 admin console.

UPDATED WITH /ShowCallStack option

Call Stack

An exception occurred during the Install phase. System.Security.SecurityException: The source was not found, but some or all eve nt logs could not be searched.  Inaccessible logs: Security.    at System.Diagnostics.EventLog.FindSourceRegistration(String source, String m achineName, Boolean readOnly)    at System.Diagnostics.EventLog.SourceExists(String source, String machineName )    at System.Diagnostics.EventLogInstaller.Install(IDictionary stateSaver)    at System.Configuration.Install.Installer.Install(IDictionary stateSaver)    at System.ServiceProcess.ServiceInstaller.Install(IDictionary stateSaver)    at System.Configuration.Install.Installer.Install(IDictionary stateSaver)    at System.Configuration.Install.Installer.Install(IDictionary stateSaver)    at System.Configuration.Install.AssemblyInstaller.Install(IDictionary savedSt ate)    at System.Configuration.Install.Installer.Install(IDictionary stateSaver)    at System.Configuration.Install.TransactedInstaller.Install(IDictionary saved State) 

and here is the constructor:

public TweetLinkService() {     InitializeComponent();      if (!EventLog.SourceExists("TweetLinkQueue"))     {         EventLog.CreateEventSource("TweetLinkQueue", "Log");          TweetLinksLog.Source = "TweetLinkQueue";         TweetLinksLog.Log = "Log";          TweetLinksLog.WriteEntry("Log Created!");     } } 

UPDATED with ENtry Point:

namespace TweetLinkQueue {     static class Program     {         /// <summary>         /// The main entry point for the application.         /// </summary>         static void Main()         {             ServiceBase[] ServicesToRun;             ServicesToRun = new ServiceBase[]              {                  new TweetLinkService()              };             ServiceBase.Run(ServicesToRun);         }     } } 
like image 922
Brandon Watson Avatar asked Oct 16 '09 19:10

Brandon Watson


2 Answers

I was just having this issue and it was because I wasn't running my visual studio command prompt as an administrator.

like image 134
Tom B Avatar answered Sep 28 '22 07:09

Tom B


I'm not sure what your specific problem is. It looks to me like the problem occurs while creating the EventLog source. Double-check that you've done that part correctly. You can reference the step-by-step here. EDIT: SPECIFICALLY LOOK AT STEP 9. The problem may be occuring because you're messing with the Application log instead of one specific to your application.

There's nothing wrong with using InstallUtil, but if you need to install your service on a foreign machine, InstallUtil is not guaranteed to be there. You can follow this step-by-step to make your Windows service executable install/uninstall itself without the need of InstallUtil. See here for those instructions.

like image 31
Matt Davis Avatar answered Sep 28 '22 06:09

Matt Davis