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(); }); } } }