huangxiaoqiang
2025-06-12 c54e0666bdd34fbe133fe521bf9d46dd6c0fe53e
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs
@@ -1,28 +1,33 @@
using WIDESEAWCS_Core.Helper;
using WIDESEAWCS_Core.Extensions;
using WIDESEAWCS_Core.Middlewares;
using System.Reflection;
using WIDESEAWCS_Core.Filter;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Serialization;
using Newtonsoft.Json;
using System.Text;
using Microsoft.AspNetCore.Mvc.Controllers;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Microsoft.AspNetCore.Mvc.ModelBinding.Validation;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseServices;
using Autofac.Extensions.DependencyInjection;
using Autofac;
using WIDESEAWCS_WCSServer.Filter;
using Autofac.Extensions.DependencyInjection;
using Microsoft.AspNetCore.Mvc.Controllers;
using Microsoft.AspNetCore.SignalR;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using System.Reflection;
using System.Text;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.Authorization;
using WIDESEAWCS_Core.Core;
using WIDESEAWCS_QuartzJob.Seed;
using Autofac.Core;
using WIDESEAWCS_Core.Extensions;
using WIDESEAWCS_Core.Filter;
using WIDESEAWCS_Core.Helper;
using WIDESEAWCS_Core.Middlewares;
using WIDESEAWCS_QuartzJob.QuartzExtensions;
using Microsoft.AspNetCore.Builder;
using WIDESEAWCS_QuartzJob.Seed;
using WIDESEAWCS_SignalR;
using WIDESEAWCS_Tasks;
using WIDESEAWCS_WCSServer.Filter;
var builder = WebApplication.CreateBuilder(args);
if (!HslCommunication.Authorization.SetAuthorizationCode("95f1611d-633c-46ea-b03a-38ede1629f74"))
{
    ConsoleHelper.WriteErrorLine("授权失败!当前程序只能使用24小时!");
}
else
    ConsoleHelper.WriteSuccessLine("授权成功!");
builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory()).ConfigureContainer<ContainerBuilder>(builder =>
{
@@ -35,19 +40,18 @@
    config.Sources.Clear();
    config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: false);
}); ;
builder.ConfigureApplication();
builder.Inject().ConfigureApplication();
// 2、配置服务
builder.Services.AddSingleton(new AppSettings(builder.Configuration));//注册
builder.Services.AddAllOptionRegister();//读取配置文件
builder.Services.AddMemoryCacheSetup();//缓存
builder.Services.AddSqlsugarSetup();//SqlSugar å¯åŠ¨æœåŠ¡
//builder.Services.AddInitializationHostServiceSetup();//应用初始化服务注入
builder.Services.AddInitializationHostServiceSetup();//应用初始化服务注入
builder.Services.AddDbSetup();//Db å¯åŠ¨æœåŠ¡
//builder.Services.AddScoped<QuartzJobCreateDataTabel>();
//builder.Services.AddHostedService<QuartzJobDataTableHostedService>();
builder.Services.AddScoped<QuartzJobCreateDataTabel>();
builder.Services.AddHostedService<QuartzJobDataTableHostedService>();
builder.Services.AddAutoMapperSetup();
@@ -61,7 +65,11 @@
builder.Services.AddHttpContextSetup();
builder.Services.AddHostedService<QuartzJobHostedService>();//任务调度 å¯åŠ¨æœåŠ¡
ConsoleHelper.WriteSuccessLine("注册SignalR插件");
builder.Services.AddSignalR();//注册SignalR
builder.Services.AddSingleton<IUserIdProvider, UserIdProvider>();//用户ID提供器
builder.Services.AddHostedService<QuartzJobHostedService>();
builder.Services.AddMvc(options =>
{
@@ -74,6 +82,7 @@
builder.Services.AddIpPolicyRateLimitSetup(builder.Configuration);//IPLimit限流 å¯åŠ¨æœåŠ¡
builder.Services.AddScoped<UseServiceDIAttribute>();
builder.Services.AddScoped<CommonConveyorLineJob>();
builder.Services.AddSession();
@@ -99,7 +108,6 @@
builder.Services.Replace(ServiceDescriptor.Transient<IControllerActivator, ServiceBasedControllerActivator>());
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
var app = builder.Build();
// 3、配置中间件
@@ -119,7 +127,7 @@
//todo
//app.UseRecordAccessLogsMiddle();
app.UseCors(AppSettings.Get(new string[] { "Cors", "PolicyName" }));
app.UseCors(AppSettings.app(new string[] { "Cors", "PolicyName" }));
DefaultFilesOptions defaultFilesOptions = new DefaultFilesOptions();
defaultFilesOptions.DefaultFileNames.Clear();
@@ -135,6 +143,7 @@
app.UseAuthentication();
app.UseAuthorization();
app.MapHubs();
app.MapControllers();
app.Run();
app.Run();