| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- using Autofac.Extensions.DependencyInjection;
- using Masuit.MyBlogs.Core;
- using Masuit.MyBlogs.Core.Common;
- using Masuit.MyBlogs.Core.Extensions.DriveHelpers;
- using Masuit.MyBlogs.Core.Infrastructure;
- using Masuit.MyBlogs.Core.Infrastructure.Drive;
- using Masuit.Tools;
- using Microsoft.AspNetCore.Server.Kestrel.Core;
- using System.Diagnostics;
- AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true);
- if (Environment.OSVersion.Platform is not (PlatformID.MacOSX or PlatformID.Unix))
- {
- // 设置相关进程优先级为高于正常,防止其他进程影响应用程序的运行性能
- Process.GetProcessesByName("mysqld").ForEach(p => p.PriorityClass = ProcessPriorityClass.AboveNormal);
- Process.GetProcessesByName("pg_ctl").ForEach(p => p.PriorityClass = ProcessPriorityClass.AboveNormal);
- Process.GetProcessesByName("postgres").ForEach(p => p.PriorityClass = ProcessPriorityClass.AboveNormal);
- Process.GetProcessesByName("redis-server").ForEach(p => p.PriorityClass = ProcessPriorityClass.AboveNormal);
- Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.AboveNormal;
- }
- // 确保IP数据库正常
- if (!"223.5.5.5".GetIPLocation().Contains("阿里"))
- {
- throw new Exception("IP地址库初始化失败,请重启应用!");
- }
- InitOneDrive(); // 初始化Onedrive程序
- Host.CreateDefaultBuilder(args).UseServiceProviderFactory(new AutofacServiceProviderFactory()).ConfigureWebHostDefaults(hostBuilder => hostBuilder.UseKestrel(opt =>
- {
- var config = opt.ApplicationServices.GetService<IConfiguration>();
- var port = config["Port"] ?? "5000";
- var sslport = config["Https:Port"] ?? "5001";
- opt.ListenAnyIP(port.ToInt32());
- if (bool.Parse(config["Https:Enabled"]))
- {
- opt.ListenAnyIP(sslport.ToInt32(), s =>
- {
- if (Environment.OSVersion.Platform == PlatformID.Win32NT && Environment.OSVersion.Version.Major >= 10)
- {
- s.Protocols = HttpProtocols.Http1AndHttp2;
- }
- s.UseHttps(AppContext.BaseDirectory + config["Https:CertPath"], config["Https:CertPassword"]);
- });
- }
- opt.Limits.MaxRequestBodySize = null;
- Console.WriteLine($"应用程序监听端口:http:{port},https:{sslport}");
- }).UseStartup<Startup>()).Build().Run();
- static void InitOneDrive()
- {
- //初始化
- if (!File.Exists(Path.Combine(Directory.GetCurrentDirectory(), "App_Data", "OneDrive.db")))
- {
- File.Copy(Path.Combine("App_Data","OneDrive.template.db"), Path.Combine("App_Data","OneDrive.db"));
- Console.WriteLine("数据库创建成功");
- }
- using var settingService = new SettingService(new DriveContext());
- if (settingService.Get("IsInit") != "true")
- {
- settingService.Set("IsInit", "true").Wait();
- Console.WriteLine("数据初始化成功");
- Console.WriteLine($"请登录 {OneDriveConfiguration.BaseUri}/#/admin 进行身份及其他配置");
- }
- }
|