using Autofac;
|
using Autofac.Extensions.DependencyInjection;
|
using KH.WMS.Core.AOP;
|
using KH.WMS.Core.Api.Documentation.Swagger;
|
using KH.WMS.Core.DependencyInjection;
|
using KH.WMS.Core.Logging.Serilog;
|
using KH.WMS.Core.Monitoring.MiniProfiler;
|
using KH.WMS.Core.Setup;
|
using KH.WMS.TestProj;
|
using StackExchange.Profiling;
|
using Swashbuckle.AspNetCore.SwaggerUI;
|
|
var builder = WebApplication.CreateBuilder(args);
|
|
|
// 配置 Serilog 日志
|
builder.Host.AddSerilog(
|
appName: "KH.WMS",
|
logDirectory: "Logs",
|
retentionDays: 30,
|
maxFileSizeMB: 5);
|
|
|
builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory()).ConfigureContainer<ContainerBuilder>(builder =>
|
{
|
builder.RegisterModule(new ServiceExtensions());//带有接口层的服务注入
|
});
|
|
// 添加 HttpContextAccessor(用于日志中获取用户信息)
|
builder.Services.AddHttpContextAccessor();
|
|
builder.Services.AddInfrastructure(builder.Configuration, builder.Environment);
|
|
// Add services to the container.
|
builder.Services.AddControllers();
|
builder.Services.AddRazorPages(); // MiniProfiler UI 可能需要
|
builder.Services.AddEndpointsApiExplorer();
|
|
var app = builder.Build();
|
|
app.UseCustomMiddleware(app.Environment);
|
|
// Configure the HTTP request pipeline.
|
if (app.Environment.IsDevelopment())
|
{
|
app.UseSwaggerDocumentation(builder.Configuration);
|
}
|
|
app.Run();
|