6 changed files with 128 additions and 113 deletions
@ -1,86 +1,82 @@ |
|||||
using LINGYUN.Abp.Identity.Session.AspNetCore; |
using LINGYUN.Abp.Identity.Session.AspNetCore; |
||||
using LY.MicroService.Applications.Single; |
using LY.MicroService.Applications.Single; |
||||
using Microsoft.AspNetCore.Cors; |
using Microsoft.AspNetCore.Cors; |
||||
using Serilog; |
using Serilog; |
||||
using Volo.Abp.IO; |
using Volo.Abp.IO; |
||||
using Volo.Abp.Modularity.PlugIns; |
using Volo.Abp.Modularity.PlugIns; |
||||
|
|
||||
var builder = WebApplication.CreateBuilder(args); |
var builder = WebApplication.CreateBuilder(args); |
||||
builder.Services.AddCors(options => |
builder.Services.AddCors(options => |
||||
{ |
{ |
||||
options.AddDefaultPolicy(policy => |
options.AddDefaultPolicy(policy => |
||||
{ |
{ |
||||
policy |
policy |
||||
.WithOrigins( |
.WithOrigins( |
||||
builder.Configuration["App:CorsOrigins"] |
builder.Configuration["App:CorsOrigins"] |
||||
.Split(",", StringSplitOptions.RemoveEmptyEntries) |
.Split(",", StringSplitOptions.RemoveEmptyEntries) |
||||
.Select(o => o.RemovePostFix("/")) |
.Select(o => o.RemovePostFix("/")) |
||||
.ToArray() |
.ToArray() |
||||
) |
) |
||||
.WithAbpExposedHeaders() |
.WithAbpExposedHeaders() |
||||
.WithAbpWrapExposedHeaders() |
.WithAbpWrapExposedHeaders() |
||||
.SetIsOriginAllowedToAllowWildcardSubdomains() |
.SetIsOriginAllowedToAllowWildcardSubdomains() |
||||
.AllowAnyHeader() |
.AllowAnyHeader() |
||||
.AllowAnyMethod() |
.AllowAnyMethod() |
||||
.AllowCredentials(); |
.AllowCredentials(); |
||||
}); |
}); |
||||
}); |
}); |
||||
builder.Host.AddAppSettingsSecretsJson() |
builder.Host.AddAppSettingsSecretsJson() |
||||
.UseAutofac() |
.UseAutofac() |
||||
.UseSerilog((context, provider, config) => |
.UseSerilog((context, provider, config) => |
||||
{ |
{ |
||||
config.ReadFrom.Configuration(context.Configuration); |
config.ReadFrom.Configuration(context.Configuration); |
||||
}); |
}); |
||||
|
|
||||
await builder.AddApplicationAsync<MicroServiceApplicationsSingleModule>(options => |
await builder.AddApplicationAsync<MicroServiceApplicationsSingleModule>(options => |
||||
{ |
{ |
||||
MicroServiceApplicationsSingleModule.ApplicationName = Environment.GetEnvironmentVariable("APPLICATION_NAME") |
MicroServiceApplicationsSingleModule.ApplicationName = Environment.GetEnvironmentVariable("APPLICATION_NAME") |
||||
?? MicroServiceApplicationsSingleModule.ApplicationName; |
?? MicroServiceApplicationsSingleModule.ApplicationName; |
||||
options.ApplicationName = MicroServiceApplicationsSingleModule.ApplicationName; |
options.ApplicationName = MicroServiceApplicationsSingleModule.ApplicationName; |
||||
// 从环境变量取用户机密配置, 适用于容器测试
|
options.Configuration.UserSecretsId = Environment.GetEnvironmentVariable("APPLICATION_USER_SECRETS_ID"); |
||||
options.Configuration.UserSecretsId = Environment.GetEnvironmentVariable("APPLICATION_USER_SECRETS_ID"); |
options.Configuration.UserSecretsAssembly = typeof(MicroServiceApplicationsSingleModule).Assembly; |
||||
// 如果容器没有指定用户机密, 从项目读取
|
var pluginFolder = Path.Combine( |
||||
options.Configuration.UserSecretsAssembly = typeof(MicroServiceApplicationsSingleModule).Assembly; |
Directory.GetCurrentDirectory(), "Modules"); |
||||
// 搜索 Modules 目录下所有文件作为插件
|
DirectoryHelper.CreateIfNotExists(pluginFolder); |
||||
// 取消显示引用所有其他项目的模块,改为通过插件的形式引用
|
options.PlugInSources.AddFolder( |
||||
var pluginFolder = Path.Combine( |
pluginFolder, |
||||
Directory.GetCurrentDirectory(), "Modules"); |
SearchOption.AllDirectories); |
||||
DirectoryHelper.CreateIfNotExists(pluginFolder); |
}); |
||||
options.PlugInSources.AddFolder( |
|
||||
pluginFolder, |
var app = builder.Build(); |
||||
SearchOption.AllDirectories); |
|
||||
}); |
await app.InitializeApplicationAsync(); |
||||
|
|
||||
var app = builder.Build(); |
app.UseForwardedHeaders(); |
||||
|
if (app.Environment.IsDevelopment()) |
||||
await app.InitializeApplicationAsync(); |
{ |
||||
|
app.UseDeveloperExceptionPage(); |
||||
app.UseForwardedHeaders(); |
} |
||||
if (app.Environment.IsDevelopment()) |
// app.UseAbpExceptionHandling();
|
||||
{ |
app.UseCookiePolicy(); |
||||
app.UseDeveloperExceptionPage(); |
app.UseMapRequestLocalization(); |
||||
} |
app.UseCorrelationId(); |
||||
// app.UseAbpExceptionHandling();
|
app.UseStaticFiles(); |
||||
app.UseCookiePolicy(); |
app.UseRouting(); |
||||
app.UseMapRequestLocalization(); |
app.UseCors(); |
||||
app.UseCorrelationId(); |
app.UseAuthentication(); |
||||
app.UseStaticFiles(); |
app.UseMultiTenancy(); |
||||
app.UseRouting(); |
app.UseUnitOfWork(); |
||||
app.UseCors(); |
app.UseAbpOpenIddictValidation(); |
||||
app.UseAuthentication(); |
app.UseAbpSession(); |
||||
app.UseMultiTenancy(); |
app.UseDynamicClaims(); |
||||
app.UseUnitOfWork(); |
app.UseAuthorization(); |
||||
app.UseAbpOpenIddictValidation(); |
app.UseSwagger(); |
||||
app.UseAbpSession(); |
app.UseSwaggerUI(options => |
||||
app.UseDynamicClaims(); |
{ |
||||
app.UseAuthorization(); |
options.SwaggerEndpoint("/swagger/v1/swagger.json", "Support App API"); |
||||
app.UseSwagger(); |
}); |
||||
app.UseSwaggerUI(options => |
app.UseAuditing(); |
||||
{ |
app.UseAbpSerilogEnrichers(); |
||||
options.SwaggerEndpoint("/swagger/v1/swagger.json", "Support App API"); |
app.UseConfiguredEndpoints(); |
||||
}); |
|
||||
app.UseAuditing(); |
await app.RunAsync(); |
||||
app.UseAbpSerilogEnrichers(); |
|
||||
app.UseConfiguredEndpoints(); |
|
||||
|
|
||||
await app.RunAsync(); |
|
||||
|
|||||
Loading…
Reference in new issue