轉換 Worker Service 為 Windows Service
為工作紀錄。.NET6。
關鍵知識
Worker Service 轉換成 Window Service
源碼紀錄
using Serilog;
using Serilog.Sinks.MSSqlServer;
using System.Collections.ObjectModel;
using System.Data;
///// 設定工作目錄,若取不到 Configuration 的話。
//Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory);
IHost host = Host.CreateDefaultBuilder(args)
.ConfigureLogging((ctx, logging) =>
{
//## 懶人版 資料庫連線初始化
DBHelper.CONNDB = new ConnProxy(ctx.Configuration["ConnectionStrings:CONNDB"]);
var columnOptions = new ColumnOptions();
columnOptions.Store.Remove(StandardColumn.Properties);
columnOptions.Store.Remove(StandardColumn.MessageTemplate);
columnOptions.Store.Add(StandardColumn.LogEvent);
columnOptions.AdditionalColumns = new Collection<SqlColumn>
{
new SqlColumn{ColumnName = "JobId", DataType = SqlDbType.VarChar, DataLength = 50},
};
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(ctx.Configuration)
.Enrich.FromLogContext()
.AuditTo.MSSqlServer(
connectionString: DBHelper.CONNSLP.ConnStr,
sinkOptions: new MSSqlServerSinkOptions() { TableName = "JobSerilog", AutoCreateSqlTable = false },
columnOptions: columnOptions)
.CreateLogger();
logging.AddSerilog();
})
.ConfigureServices((ctx, services) =>
{
//# 註冊相依 Services
//# 加掛排程執行緒
services.AddHostedService<YourJob10Worker>();
services.AddHostedService<YourJob20Worker>();
services.AddHostedService<YourJob30Worker>();
})
.UseWindowsService()
.Build();
await host.RunAsync();Worker Service 轉換成 Linux Deamon Service
參考文件
Last updated