using Autofac; using Autofac.Extensions.DependencyInjection; using DS.Module.AutofacModule; using DS.Module.Core; using DS.Module.Core.Extensions; using DS.Module.Core.Modules; using DS.Module.Core.ServiceExtensions; using DS.Module.Jwt; using DS.Module.SqlSugar; using DS.Module.Swagger; using DS.Module.User; using DS.WMS.Core.DBSeed; using DS.WMS.WebApi; using Microsoft.AspNetCore.StaticFiles; using NLog.Web; var builder = WebApplication.CreateBuilder(args); builder.Logging.AddNLog("nlog.config"); // Add services to the container. //Autofac注入 builder.Host .UseServiceProviderFactory(new AutofacServiceProviderFactory()) .ConfigureContainer(builder => { builder.RegisterModule(new AutofacModuleRegister()); }); builder.Services.AddAppWebInstal(); builder.Services.AddCorsInstall(); builder.Services.AddSqlsugarInstall(); builder.Services.AddSwaggerInstall(); builder.Services.AddUserModuleInstall(); builder.Services.AddJwtInstall(); // 3、配置中间件 var app = builder.Build(); // app.InitializeApplication(); //if (app.Environment.IsDevelopment()) //{ // app.UseDeveloperExceptionPage(); //} //else //{ // app.UseExceptionHandler("/Error"); // //app.UseHsts(); //} //swagger app.UseSwagger(); app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", AppSetting.Configuration["SwaggerDoc:Version"]); }); //跨域 var policyName = AppSetting.Configuration["Cors:PolicyName"]; if (!policyName.IsNullOrEmpty()) { app.UseCors(policyName); //添加跨域中间件 } app.UseRouting(); // app.UseStaticFiles(); //文件 app.UseStaticFiles(new StaticFileOptions { //FileProvider = new PhysicalFileProvider(Directory.GetCurrentDirectory()), //设置不限制content-type 该设置可以下载所有类型的文件,但是不建议这么设置,因为不安全 //下面设置可以下载apk和nupkg类型的文件 ContentTypeProvider = new FileExtensionContentTypeProvider(new Dictionary { { ".apk", "application/vnd.android.package-archive" } }) }); // 先开启认证 app.UseAuthentication(); // 然后是授权中间件 app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); app.Run();