Re: Topshelf.HostConfigurators.WindowsServiceDescription service has not been installed yet

1,493 views
Skip to first unread message

Seán McDonnell

unread,
Dec 6, 2012, 8:22:16 AM12/6/12
to topshelf...@googlegroups.com
It turns out I was running a service within a service. 

My resolution was to delete the Windows Service project and add the code in as a normal console application. 

To install the Quartz server with Topshelf all I needed to do was to navigate to my project's BIN/Debug folder and run the following from command prompt:

MyWindowsService install

Then go to my service in Windows and simply start it!




On Wednesday, 5 December 2012 15:03:42 UTC, Seán McDonnell wrote:
Hi all,

I have attempted to get Quartz.Net kicked off in a Windows service using Topshelf. I have provided a detailed example here: http://stackoverflow.com/questions/13726017/windows-service-started-and-then-stopped-using-topshelf

Here is the repost:

I am using Quartz.net and I am trying to get the Quartz server to start-off in a Windows Service. I have created a Windows Service Project and included the Quartz.net libraries. In my Service class I have:

protected override void OnStart(string[] args)
{
    try
    {
        Host host = HostFactory.New(x =>
        {
            x.Service<IQuartzServer>(s =>
            {
                s.SetServiceName("quartz.server");
                s.ConstructUsing(builder =>
                {
                    QuartzServer server = new QuartzServer();
                    server.Initialize();
                    return server;
                });
                s.WhenStarted(server => server.Start());
                s.WhenPaused(server => server.Pause());
                s.WhenContinued(server => server.Resume());
                s.WhenStopped(server => server.Stop());
            });

            x.RunAsLocalService();
            //x.RunAs(@"mydomain\mysusername", "mypassword");

            x.SetDescription(Configuration.ServiceDescription);
            x.SetDisplayName(Configuration.ServiceDisplayName);
            x.SetServiceName(Configuration.ServiceName);
        });

        host.Run();
    }
    catch (Exception ex)
    {
        Log.Error(ex.Message);
        Log.Error(ex.InnerException.Message);
    }

}

I have also created a Windows Service Installer and have successfully installed the Windows Service in Visual Studio's command prompt using:

installutil MyWindowsService.exe

When I view my service in the Windows service list and try to start the service - I get a message dialog box:

The MyWindowsService service on Local Computer started and the stopped. Some Services stop automatically if they are not in use by other services or programs.

Here is the output I have logged to the event viewer (log4net):

Level Date and Time Source Event ID Task Category Information 05/12/2012 14:52:24 MyWindowsService.exe 0 None "2012-12-05 14:52:24,044 [11528] INFO Common.Logging.Factory.AbstractLogger.Info(:0) - Finished Starting Channel Optimiser Windows Service. " Error 05/12/2012 14:52:24 Service1 0 None "Service cannot be started. System.NullReferenceException: Object reference not set to an instance of an object. at MyWindowsService.Service1.OnStart(String[] args) in c:\My Projects\MyWindowsService\Service1.cs:line 58 at System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(Object state)" Error 05/12/2012 14:52:24 MyWindowsService.exe 0 None "2012-12-05 14:52:24,042 [6048] ERROR Common.Logging.Factory.AbstractLogger.Error(:0) - The Topshelf.HostConfigurators.WindowsServiceDescription service has not been installed yet. Please run 'MyWindowsService, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null install'. " Error 05/12/2012 14:52:24 MyWindowsService.exe 0 None "2012-12-05 14:52:24,041 [6048] FATAL Topshelf.Windows.WindowsServiceHost.Run(:0) - The Topshelf.HostConfigurators.WindowsServiceDescription service has not been installed yet. Please run 'MyWindowsService, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null install'. " Information 05/12/2012 14:52:24 MyWindowsService.exe 0 None "2012-12-05 14:52:24,039 [6048] INFO Topshelf.Windows.WindowsServiceHost.Run(:0) - Starting up as a winservice application " Information 05/12/2012 14:52:24 MyWindowsService.exe 0 None "2012-12-05 14:52:24,038 [6048] DEBUG Topshelf.Builders.RunBuilder.CreateHost(:0) - Running as a Windows service, using the service host " Information 05/12/2012 14:52:24 MyWindowsService.exe 0 None "2012-12-05 14:52:24,027 [6048] INFO Topshelf.OS.OsDetector.DetectOs(:0) - Detected the operating system: 'win' " Information 05/12/2012 14:52:23 MyWindowsService.exe 0 None "2012-12-05 14:52:23,895 [6048] INFO Topshelf.HostConfigurators.HostConfiguratorImpl.CreateHost(:0) - Topshelf v2.2.2.0, .NET Framework v4.0.30319.17929 " Information 05/12/2012 14:52:23 MyWindowsService.exe 0 None "2012-12-05 14:52:23,829 [11528] INFO Common.Logging.Factory.AbstractLogger.Info(:0) - Starting Channel Optimiser Windows Service.. "

Does anyone know how I can get this service to start without this error(s) being thrown?

Thanks in advance.


I

Dru Sellers

unread,
Dec 6, 2012, 3:08:38 PM12/6/12
to topshelf...@googlegroups.com
Yup, you got it. :) Sorry for the initial confusion. :)
Reply all
Reply to author
Forward
0 new messages