using System.Text; using FreeSql; using WenChuanyi.Api.Models; using WenChuanyi.Api.Services; Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); var builder = WebApplication.CreateBuilder(args); builder.Services.AddControllers(); // CORS:开发期前后端分离宽松策略;生产同目录同源不受影响 builder.Services.AddCors(o => o.AddPolicy("any", p => p.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod())); // FreeSql + CodeFirst 自动建表 var fsql = new FreeSqlBuilder() .UseConnectionString(DataType.MySql, builder.Configuration.GetConnectionString("MySql")!) .UseAutoSyncStructure(true) .UseNoneCommandParameter(true) .Build(); try { fsql.CodeFirst.SyncStructure(); } catch (Exception ex) { Console.WriteLine("[文传易] 数据库初始化失败:" + ex.Message); Console.WriteLine("[文传易] 请检查 appsettings.json 的 ConnectionStrings:MySql"); Console.WriteLine("[文传易] (服务器 116.198.221.125:3306,账号 wenchuanyi 需具备建表权限)"); throw; } builder.Services.AddSingleton(fsql); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddHostedService(); var app = builder.Build(); app.UseCors("any"); app.UseDefaultFiles(); app.UseStaticFiles(); app.MapControllers(); app.MapFallbackToFile("index.html"); app.Run();