using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using System; using System.Runtime.InteropServices; using System.Threading; using System.Threading.Tasks; using WCS.Service.Log; namespace WCS.Service { public class Program { public static void Main(string[] args) { bool create = false; using (Mutex mt = new Mutex(true, "WCS", out create)) { if (create) { CreateHostBuilder(args).Build().Run(); } else { Console.WriteLine("请勿重复运行"); InfoLog.INFO_INIT("请勿重复运行"); Task.Delay(2000).Wait(); } } } public static IHostBuilder CreateHostBuilder(string[] args) { //是否是win平台 bool isWin = RuntimeInformation.IsOSPlatform(OSPlatform.Windows); Console.WriteLine($"win:{isWin}"); if (isWin) { return Host.CreateDefaultBuilder(args) .UseWindowsService()//win .ConfigureWebHostDefaults(web => { web.UseUrls("http://*:8080"); web.UseStartup(); }) .ConfigureServices((hostContext, services) => { services.AddDbContext(); services.AddHostedService(); }); } return Host.CreateDefaultBuilder(args) .UseSystemd()//linux .ConfigureServices((hostContext, services) => { services.AddHostedService(); }); } } }