Files
Yi.Framework/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Program.cs
2022-10-03 17:04:59 +08:00

219 lines
4.9 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
global using System;
using Autofac.Extensions.DependencyInjection;
using Yi.Framework.WebCore.BuilderExtend;
using Yi.Framework.Core;
using Yi.Framework.WebCore.MiddlewareExtend;
using Yi.Framework.WebCore.Utility;
using Autofac;
using Yi.Framework.Common.Models;
using Yi.Framework.Language;
using Microsoft.Extensions.Localization;
using Yi.Framework.WebCore.AttributeExtend;
using Yi.Framework.WebCore.SignalRHub;
using Hei.Captcha;
using Yi.Framework.WebCore;
using Microsoft.Extensions.DependencyInjection;
using Yi.Framework.WebCore.DbExtend;
using IPTools.Core;
var builder = WebApplication.CreateBuilder(args);
builder.Configuration.AddCommandLine(args);
builder.WebHost.UseUrls(builder.Configuration.GetValue<string>("StartUrl"));
builder.Host.ConfigureAppConfiguration((hostBuilderContext, configurationBuilder) =>
{
configurationBuilder.AddCommandLine(args);
configurationBuilder.AddJsonFileService();
#region
//ApolloÅäÖÃ
#endregion
configurationBuilder.AddApolloService("Yi");
});
builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory());
builder.Host.ConfigureContainer<ContainerBuilder>(containerBuilder =>
{
#region
//½»ÓÉModuleÒÀÀµ×¢Èë
#endregion
containerBuilder.RegisterModule<CustomAutofacModule>();
});
builder.Host.ConfigureLogging(loggingBuilder =>
{
loggingBuilder.AddFilter("System", Microsoft.Extensions.Logging.LogLevel.Warning);
loggingBuilder.AddFilter("Microsoft", Microsoft.Extensions.Logging.LogLevel.Warning);
loggingBuilder.AddLog4Net("./Config/Log4net.config");
});
#region
//ÅäÖÃÀàÅäÖÃ
//builder.Host.ConfigureWebHostDefaults(webBuilder =>
// {
// //webBuilder.UseStartup<Startup>();
// });
#endregion
//-----------------------------------------------------------------------------------------------------------
#region
//IocÅäÖÃ
#endregion
builder.Services.AddIocService(builder.Configuration);
#region
//SqlsugarÉÏÏÂÎÄ×¢Èë,ÊÇ·ñ¿ªÆôÊý¾ÝȨÏÞ¹¦ÄÜ£¬¿ªÆôÐèÒªRedis»º´æ
#endregion
builder.Services.AddSqlsugarServer();
//builder.Services.AddSqlsugarServer(DbFiterExtend.Data);
#region
//QuartzÈÎÎñµ÷¶ÈÅäÖÃ
#endregion
builder.Services.AddQuartzService();
#region
//AutoMapper×¢Èë
#endregion
builder.Services.AddAutoMapperService();
#region
//¿ØÖÆÆ÷+¹ýÂËÆ÷ÅäÖÃ
#endregion
builder.Services.AddControllers(optios => {
//×¢²áÈ«¾Ö
optios.Filters.Add<GlobalLogAttribute>();
}).AddJsonFileService();
#region
//ȨÏÞ¹ýÂËÆ÷
#endregion
//ȨÏÞ
builder.Services.AddSingleton<PermissionAttribute>();
//ÈÕÖ¾
builder.Services.AddSingleton<GlobalLogAttribute>();
#region
//Swagger·þÎñÅäÖÃ
#endregion
builder.Services.AddSwaggerService<Program>();
#region
//¿çÓò·þÎñÅäÖÃ
#endregion
builder.Services.AddCorsService();
#region
//Jwt¼øÈ¨ÅäÖÃ
#endregion
builder.Services.AddJwtService();
#region
//ÊÚȨÅäÖÃ
#endregion
builder.Services.AddAuthorizationService();
#region
//Redis·þÎñÅäÖÃ
#endregion
builder.Services.AddRedisService();
#region
//RabbitMQ·þÎñÅäÖÃ
#endregion
builder.Services.AddRabbitMQService();
#region
//ElasticSeach·þÎñÅäÖÃ
#endregion
builder.Services.AddElasticSeachService();
#region
//¶ÌÐÅ·þÎñÅäÖÃ
#endregion
builder.Services.AddSMSService();
#region
//CAP·þÎñÅäÖÃ
#endregion
builder.Services.AddCAPService();
#region
//¹ú¼Ê»¯ÅäÖÃ
#endregion
builder.Services.AddLocalizerService();
#region
//Ìí¼ÓsignalR
#endregion
builder.Services.AddSignalR();
#region
//Ìí¼ÓÑéÖ¤Âë
#endregion
builder.Services.AddHeiCaptcha();
#region
//Ìí¼ÓHttpÉÏÏÂÎÄ
#endregion
builder.Services.AddHttpContextAccessor();
//-----------------------------------------------------------------------------------------------------------
var app = builder.Build();
#region
//·þÎñÈÝÆ÷
#endregion
ServiceLocator.Instance = app.Services;
//if (app.Environment.IsDevelopment())
{
#region
//²âÊÔÒ³Ãæ×¢Èë
#endregion
app.UseDeveloperExceptionPage();
#region
//Swagger·þÎñ×¢Èë
#endregion
app.UseSwaggerService();
}
#region
//´íÎóץȡ·´À¡×¢Èë
#endregion
app.UseErrorHandlingService();
#region
//¾²Ì¬Îļþ×¢Èë
#endregion
app.UseStaticFiles();
#region
//¶àÓïÑÔ¹ú¼Ê»¯×¢Èë
#endregion
app.UseLocalizerService();
#region
//ÉÏÏÂÎÄÇëÇóbody
#endregion
app.UseHttpBodyService();
#region
//HttpsRedirection×¢Èë
#endregion
app.UseHttpsRedirection();
#region
//·ÓÉ×¢Èë
#endregion
app.UseRouting();
#region
//¿çÓò·þÎñ×¢Èë
#endregion
app.UseCorsService();
#region
//½¡¿µ¼ì²é×¢Èë
#endregion
app.UseHealthCheckService();
#region
//¼øÈ¨×¢Èë
#endregion
app.UseAuthentication();
#region
//ÊÚȨעÈë
#endregion
app.UseAuthorization();
#region
//Consul·þÎñ×¢Èë
#endregion
app.UseConsulService();
#region
//Êý¾Ý¿âÖÖ×Ó×¢Èë
#endregion
app.UseDbSeedInitService();
#region
//redisÖÖ×Ó×¢Èë
#endregion
app.UseRedisSeedInitService();
app.UseEndpoints(endpoints =>
{
#region
//SignalRÅäÖÃ
#endregion
endpoints.MapHub<MainHub>("/api/hub/main");
endpoints.MapControllers();
});
app.Run();