using WcsMain.Common; namespace WcsMain.StartAction; /// /// 一个类,用于触发启动关闭事件 /// public class HostService(ServiceStart serverStart) : IHostedLifecycleService { private readonly ServiceStart _serverStart = serverStart; public Task StartAsync(CancellationToken cancellationToken) { return Task.CompletedTask; } public Task StartingAsync(CancellationToken cancellationToken) { return Task.CompletedTask; } public Task StartedAsync(CancellationToken cancellationToken) { return Task.Run(() => { string? loadingResult = LoadingRunningData.GetResult(); if (!string.IsNullOrEmpty(loadingResult)) { ConsoleLog.Error($"【异常】启动加载运行文件出错,WCS功能受到限制,您可以检查网络连接后重新启动或者联系我们,参考信息:{loadingResult}"); return; } ConsoleLog.Info("WCS服务启动中,请稍后..."); var apiOnly = CommonData.Settings.ApplicationConfig.ApiOnly; if (apiOnly == null) { ConsoleLog.Error("【异常】配置文件加载失败,WCS 启动失败"); return; } if ((bool)apiOnly) { ConsoleLog.Warning("【警告】当前运行在 【仅 API】 模式下"); } else { _serverStart.Start(); } ConsoleLog.Success("WCS服务启动完成"); }, cancellationToken); } /// /// 关闭事件 /// /// /// public Task StopAsync(CancellationToken cancellationToken) { return Task.CompletedTask; } public Task StoppedAsync(CancellationToken cancellationToken) { return Task.Run(() => { ConsoleLog.Info("WCS服务已经关闭"); }, cancellationToken); } public Task StoppingAsync(CancellationToken cancellationToken) { return Task.CompletedTask; } }