詳解如何將.NET應(yīng)用轉(zhuǎn)換成Window服務(wù)
寫在前面
本文介紹了將.NET8.0應(yīng)用程序轉(zhuǎn)換成Windows服務(wù)。
需要在NuGet中獲取并安裝:Microsoft.Extensions.Hosting.WindowsServices 包
代碼實(shí)現(xiàn)
using System.Runtime.InteropServices;
using WorkerService1;
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args)
{
var host = Host.CreateDefaultBuilder(args);
//判斷當(dāng)前系統(tǒng)是否為windows
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
host.UseWindowsService();
}
return host.ConfigureServices((hostContext, services) =>
{
services.AddHostedService<Worker>();
});
}
}
namespace WorkerService1
{
public class Worker : BackgroundService
{
private readonly ILogger<Worker> _logger;
public Worker(ILogger<Worker> logger)
{
_logger = logger;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
if (_logger.IsEnabled(LogLevel.Information))
{
_logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
}
await Task.Delay(1000, stoppingToken);
}
}
}
}發(fā)布配置

可以使用批處理安裝服務(wù):
@echo off @title 安裝windows服務(wù) @echo off echo= 安裝服務(wù)! @echo off @sc create worktest binPath= "%~dp0WorkerService1.exe" echo= 啟動(dòng)服務(wù)! @echo off @sc start worktest @echo off echo= 配置服務(wù)! @echo off @sc config worktest start= AUTO @echo off echo= 成功安裝、啟動(dòng)、配置服務(wù)! @pause
執(zhí)行結(jié)果

由于編碼問(wèn)題,中文出現(xiàn)了亂碼,但是服務(wù)已經(jīng)成功創(chuàng)建并配置為自動(dòng)啟動(dòng)了。

到此這篇關(guān)于詳解如何將.NET應(yīng)用轉(zhuǎn)換成Window服務(wù)的文章就介紹到這了,更多相關(guān).NET應(yīng)用轉(zhuǎn)換成Window服務(wù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C# CAD SelectionFilter下TypedValue數(shù)組使用方式
這篇文章主要介紹了C# CAD SelectionFilter下TypedValue數(shù)組使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
C#的WebBrowser的操作與注意事項(xiàng)介紹
C#的WebBrowser的操作與注意事項(xiàng)介紹,需要的朋友可以參考一下2013-03-03
基于C#實(shí)現(xiàn)的高性能實(shí)時(shí)MP4錄屏方案
這篇文章主要介紹了基于C#實(shí)現(xiàn)的高性能實(shí)時(shí)MP4錄屏方案,文中通過(guò)代碼示例介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下2026-02-02
解析C#中斷言與異常的應(yīng)用方式及異常處理的流程控制
這篇文章主要介紹了C#中斷言與異常的應(yīng)用方式及異常處理的流程控制,一般來(lái)說(shuō)斷言用于修正程序員自己的錯(cuò)誤而異常用于應(yīng)對(duì)程序運(yùn)行過(guò)程中可能出現(xiàn)的錯(cuò)誤,需要的朋友可以參考下2016-01-01
C#實(shí)現(xiàn)自定義線程池實(shí)例代碼
這篇文章介紹了C#實(shí)現(xiàn)自定義線程池的實(shí)例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07
c# n個(gè)數(shù)排序?qū)崿F(xiàn)代碼
c# n個(gè)數(shù)排序?qū)崿F(xiàn)代2009-07-07
C#實(shí)現(xiàn)讀取Word表格到DataSet
在應(yīng)用項(xiàng)目里,多數(shù)情況下我們會(huì)遇到導(dǎo)入 Excel 文件數(shù)據(jù)到數(shù)據(jù)庫(kù)的功能需求,但某些情況下,也存在使用 Word 進(jìn)行表格數(shù)據(jù)編輯的情況,這其中也包括導(dǎo)入Word內(nèi)容的功能,比如表格數(shù)據(jù)導(dǎo)出到DataSet數(shù)據(jù)集,本文將給大家介紹了C#讀取Word表格到DataSet2023-12-12
C#通過(guò)接口與線程通信(捕獲線程狀態(tài))示例代碼
本文介紹C#通過(guò)接口與線程通信(捕獲線程狀態(tài)),并提供簡(jiǎn)單的示例代碼供參考2013-12-12

