¶Ô±ÈÐÂÎļþ |
| | |
| | | using WIDESEA_Core.Helper; |
| | | using WIDESEA_Core.Extensions; |
| | | using WIDESEA_Core.Middlewares; |
| | | using System.Reflection; |
| | | using WIDESEA_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 WIDESEA_Core; |
| | | using WIDESEA_Core.BaseServices; |
| | | using Autofac.Extensions.DependencyInjection; |
| | | using Autofac; |
| | | using WIDESEA_WMSServer.Filter; |
| | | using WIDESEA_Core.Authorization; |
| | | using WIDESEA_Core.Core; |
| | | using Swashbuckle.AspNetCore.SwaggerGen; |
| | | using Microsoft.OpenApi.Models; |
| | | using WIDESEA_StorageTaskServices; |
| | | |
| | | var builder = WebApplication.CreateBuilder(args); |
| | | |
| | | builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory()).ConfigureContainer<ContainerBuilder>(builder => |
| | | { |
| | | builder.RegisterModule(new AutofacModuleRegister());//å¸¦ææ¥å£å±çæå¡æ³¨å
¥ |
| | | builder.RegisterModule<AutofacPropertityModuleReg>();// |
| | | }).ConfigureAppConfiguration((hostingContext, config) => |
| | | { |
| | | hostingContext.Configuration.ConfigureApplication(); |
| | | config.Sources.Clear(); |
| | | config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: false); |
| | | }); ; |
| | | builder.ConfigureApplication(); |
| | | |
| | | // 2ãé
ç½®æå¡ |
| | | builder.Services.AddSingleton(new AppSettings(builder.Configuration));//注å |
| | | builder.Services.AddAllOptionRegister();//读åé
ç½®æä»¶ |
| | | builder.Services.AddMemoryCacheSetup();//ç¼å |
| | | builder.Services.AddSqlsugarSetup();//SqlSugar å¯å¨æå¡ |
| | | builder.Services.AddInitializationHostServiceSetup();//åºç¨åå§åæå¡æ³¨å
¥ |
| | | builder.Services.AddDbSetup();//Db å¯å¨æå¡ |
| | | |
| | | //todo åå§å模åéªè¯é
ç½® |
| | | //builder.Services.UseMethodsModelParameters().UseMethodsGeneralParameters(); |
| | | //builder.Services.AddSingleton<IObjectModelValidator>(new NullObjectModelValidator()); |
| | | |
| | | builder.Services.AddAutoMapperSetup(); |
| | | |
| | | builder.Services.AddCorsSetup(); |
| | | builder.Services.AddMiniProfilerSetup(); |
| | | |
| | | builder.Services.AddSwaggerSetup(); |
| | | |
| | | builder.Services.AddJobSetup();//ä»»å¡è°åº¦ å¯å¨æå¡ |
| | | |
| | | builder.Services.AddHttpContextSetup(); |
| | | |
| | | //todo |
| | | builder.Services.AddMvc(options => |
| | | { |
| | | options.Filters.Add(typeof(ApiAuthorizeFilter)); |
| | | //options.Filters.Add(typeof(ActionExecuteFilter)); |
| | | // options.SuppressAsyncSuffixInActionNames = false; |
| | | }); |
| | | |
| | | builder.Services.AddAuthorizationSetup(); |
| | | |
| | | builder.Services.AddIpPolicyRateLimitSetup(builder.Configuration);//IPLimitéæµ å¯å¨æå¡ |
| | | |
| | | builder.Services.AddScoped<UseServiceDIAttribute>(); |
| | | |
| | | //builder.Services.AddDistributedMemoryCache(); |
| | | builder.Services.AddSession(); |
| | | |
| | | builder.Services.AddHttpClient(); |
| | | |
| | | builder.Services.AddControllers(o => |
| | | { |
| | | o.Filters.Add(typeof(GlobalExceptionsFilter));//å
¨å±å¼å¸¸ |
| | | //todo |
| | | //o.Conventions.Insert(0, new GlobalRoutePrefixFilter(new RouteAttribute(RoutePrefix.Name)));//è·¯ç± |
| | | }) |
| | | .AddNewtonsoftJson(options => |
| | | { |
| | | options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Serialize; |
| | | //options.SerializerSettings.ContractResolver = new DefaultContractResolver(); |
| | | options.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver(); |
| | | options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss"; |
| | | options.SerializerSettings.NullValueHandling = NullValueHandling.Include; |
| | | options.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Local; |
| | | options.SerializerSettings.Converters.Add(new StringEnumConverter()); |
| | | }); |
| | | // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle |
| | | builder.Services.AddEndpointsApiExplorer(); |
| | | |
| | | builder.Services.Replace(ServiceDescriptor.Transient<IControllerActivator, ServiceBasedControllerActivator>()); |
| | | Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); |
| | | |
| | | builder.Services.AddSwaggerGen(c => |
| | | { |
| | | // å¯ç¨XML注解 |
| | | var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; |
| | | var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile); |
| | | if (File.Exists(xmlPath)) |
| | | { |
| | | c.IncludeXmlComments(xmlPath); |
| | | } |
| | | }); |
| | | |
| | | //builder.Services.AddHostedService<MyBackgroundService>(); |
| | | |
| | | |
| | | var app = builder.Build(); |
| | | |
| | | // 3ãé
ç½®ä¸é´ä»¶ |
| | | app.UseMiniProfiler();//æ§è½åæå¨ |
| | | app.ConfigureApplication();//é
ç½®æä»¶ |
| | | app.UseApplicationSetup();//å¯å¨é
ç½® |
| | | app.UseSession(); |
| | | //if (app.Environment.IsDevelopment()) |
| | | //{ |
| | | //todo |
| | | //app.UseSwaggerAuthorized(); |
| | | app.UseSwaggerMiddle(() => Assembly.GetExecutingAssembly().GetManifestResourceStream("WIDESEA_WMSServer.index.html")); |
| | | //}//夿æ¯å¦éè¦æå¼swagger |
| | | |
| | | app.UseIpLimitMiddle(); |
| | | app.UseApiLogMiddleware(); |
| | | //todo |
| | | //app.UseRecordAccessLogsMiddle(); |
| | | |
| | | app.UseCors(AppSettings.app(new string[] { "Cors", "PolicyName" })); |
| | | |
| | | //DefaultFilesOptions defaultFilesOptions = new DefaultFilesOptions(); |
| | | //defaultFilesOptions.DefaultFileNames.Clear(); |
| | | //defaultFilesOptions.DefaultFileNames.Add("index.html"); |
| | | //app.UseDefaultFiles(defaultFilesOptions); |
| | | app.UseStaticFiles(); |
| | | app.UseCookiePolicy(); |
| | | app.UseStatusCodePages(); |
| | | |
| | | app.UseRouting(); |
| | | |
| | | |
| | | app.UseAuthentication(); |
| | | app.UseAuthorization(); |
| | | |
| | | |
| | | app.MapControllers(); |
| | | |
| | | app.Run(); |
| | | |