All Projects → erizet → TopshelfHosting

erizet / TopshelfHosting

Licence: MIT license
Runs a .net core generic host as a Topshelf service.

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to TopshelfHosting

Topper
🎩 Simple Windows Service helper (Topshelf-based, Azure Web Job capable)
Stars: ✭ 28 (+27.27%)
Mutual labels:  topshelf, windows-services
TopshelfDemoService
A daemon service demonstration application with Topshelf. 这是一个基于C#/.NET+Topshelf 实现的Windows服务程序。
Stars: ✭ 33 (+50%)
Mutual labels:  topshelf
redis-topshelf
Wrap redis server console as windows service by topshelf
Stars: ✭ 11 (-50%)
Mutual labels:  topshelf
Masstransit
Distributed Application Framework for .NET
Stars: ✭ 4,103 (+18550%)
Mutual labels:  topshelf
JobManager
A full feature platform to host and manager a Quartz.Net job using topshelf and asp.net core WebApi
Stars: ✭ 38 (+72.73%)
Mutual labels:  topshelf
Sample-ConsoleService
A sample .NET Core 2.2 Console Service
Stars: ✭ 33 (+50%)
Mutual labels:  topshelf

Build

TopshelfHosting

Do you want to write services the dotnet core way, using the IHostedService interface? Do you also like the convenience of running windows services using Topshelf? Then use this extension method to run your generic host as a Topshelf service.

Install

Topshelf.Extensions.Hosting is available as a Nuget-package. From the Package Manager Console enter:

    Install-Package Topshelf.Extensions.Hosting

How to use

Build a generic host the normal way. Use the HostBuilder class as you normally do when building an console app. Replace the .RunAsConsole call with a call to the .RunAsTopshelfService extension method.

First create a service that inherits from IHostedService

        class FileWriterService : IHostedService, IDisposable

Then build the generic host to host the service above.

        var builder = new HostBuilder()
            .ConfigureServices((hostContext, services) =>
            {
                services.AddHostedService<FileWriterService>();
            });

The last thing to run this as a Topshelf service is to call the RunAsTopshelfService extension method.

        builder.RunAsTopshelfService(hc =>
        {
            hc.SetServiceName("GenericHostInTopshelf");
            hc.SetDisplayName("Generic Host In Topshelf");
            hc.SetDescription("Runs a generic host as a Topshelf service.");
        });

You'll configure the windows service using the callback on the method. Configuration is done the normal Topshelf way.

Contribution

I'll be more than happy to get contributions!!!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].