TopshelfHosting
Runs a .net core generic host as a Topshelf service.
Install / Use
/learn @erizet/TopshelfHostingREADME
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!!!
Related Skills
node-connect
349.7kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
349.7kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
349.7kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
