नवीनतम .Net Core 3.1 पर आधारित वर्कर सर्विस के रूप में विंडोज सर्विस के लिए कंसोल एप्लिकेशन को कैसे चालू करें, इसका एक नया तरीका है ।
यदि आप Visual Studio 2019 से एक वर्कर सर्विस बनाते हैं, तो यह आपको लगभग हर वह चीज देगा जो आपको विंडोज सर्विस को बॉक्स से बाहर करने के लिए चाहिए, जो कि आपको विंडोज सर्विस में बदलने के लिए कंसोल एप्लिकेशन में बदलने की भी जरूरत है।
यहां आपको वे परिवर्तन करने होंगे जो आपको करने होंगे:
निम्नलिखित NuGet पैकेज स्थापित करें
Install-Package Microsoft.Extensions.Hosting.WindowsServices -Version 3.1.0
Install-Package Microsoft.Extensions.Configuration.Abstractions -Version 3.1.0
नीचे की तरह कार्यान्वयन के लिए Program.cs बदलें:
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
namespace ConsoleApp
{
class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).UseWindowsService().Build().Run();
}
private static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureServices((hostContext, services) =>
{
services.AddHostedService<Worker>();
});
}
}
और वर्कर जोड़ें। जहां आप कोड डालेंगे, जो सेवा कार्यों द्वारा चलाया जाएगा:
using Microsoft.Extensions.Hosting;
using System.Threading;
using System.Threading.Tasks;
namespace ConsoleApp
{
public class Worker : BackgroundService
{
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
//do some operation
}
public override Task StartAsync(CancellationToken cancellationToken)
{
return base.StartAsync(cancellationToken);
}
public override Task StopAsync(CancellationToken cancellationToken)
{
return base.StopAsync(cancellationToken);
}
}
}
जब सब कुछ तैयार हो जाता है, और एप्लिकेशन सफलतापूर्वक बनाया गया है, तो आप निम्न निर्देश के साथ Windows सेवा के रूप में अपने कंसोल एप्लिकेशन exe को स्थापित करने के लिए sc.exe का उपयोग कर सकते हैं :
sc.exe create DemoService binpath= "path/to/your/file.exe"