From 51fcc547aa84fed84deb3c0b673e2ddf3c365931 Mon Sep 17 00:00:00 2001 From: witskeeper Date: Wed, 26 Feb 2025 14:19:05 +0800 Subject: [PATCH] use netcorepla-cloud-framework v2.4.0 --- eng/versions.props | 2 +- template/Directory.Build.targets | 2 +- .../ABC.Template.Web/ABC.Template.Web.csproj | 2 ++ template/src/ABC.Template.Web/Program.cs | 35 ++++++++++++------- .../appsettings.Development.json | 23 ++++++++++++ .../src/ABC.Template.Web/appsettings.json | 14 +------- 6 files changed, 50 insertions(+), 28 deletions(-) diff --git a/eng/versions.props b/eng/versions.props index 8fe946d..1032763 100644 --- a/eng/versions.props +++ b/eng/versions.props @@ -1,6 +1,6 @@ - 2.3.0 + 2.4.0 diff --git a/template/Directory.Build.targets b/template/Directory.Build.targets index 2273a38..264ef90 100644 --- a/template/Directory.Build.targets +++ b/template/Directory.Build.targets @@ -1,6 +1,6 @@ - 2.3.0 + 2.4.0 9.0.0 9.0.0 9.0.0 diff --git a/template/src/ABC.Template.Web/ABC.Template.Web.csproj b/template/src/ABC.Template.Web/ABC.Template.Web.csproj index 2325f57..f39b3ac 100644 --- a/template/src/ABC.Template.Web/ABC.Template.Web.csproj +++ b/template/src/ABC.Template.Web/ABC.Template.Web.csproj @@ -32,6 +32,8 @@ + + diff --git a/template/src/ABC.Template.Web/Program.cs b/template/src/ABC.Template.Web/Program.cs index 7c53582..bbc4238 100644 --- a/template/src/ABC.Template.Web/Program.cs +++ b/template/src/ABC.Template.Web/Program.cs @@ -16,7 +16,6 @@ using Serilog.Formatting.Json; using Hangfire; using Hangfire.Redis.StackExchange; -using NetCorePal.Extensions.NewtonsoftJson; using Newtonsoft.Json; using Newtonsoft.Json.Serialization; using Refit; @@ -33,10 +32,8 @@ #region SignalR builder.Services.AddHealthChecks(); - builder.Services.AddMvc().AddNewtonsoftJson(options => - { - options.SerializerSettings.Converters.Add(new NewtonsoftEntityIdJsonConverter()); - }); + builder.Services.AddMvc() + .AddNewtonsoftJson(options => { options.SerializerSettings.AddNetCorePalJsonConverters(); }); builder.Services.AddSignalR(); #endregion @@ -53,7 +50,7 @@ #region 身份认证 - var redis = ConnectionMultiplexer.Connect(builder.Configuration.GetConnectionString("Redis")!); + var redis = await ConnectionMultiplexer.ConnectAsync(builder.Configuration.GetConnectionString("Redis")!); builder.Services.AddSingleton(_ => redis); builder.Services.AddDataProtection() .PersistKeysToStackExchangeRedis(redis, "DataProtection-Keys"); @@ -128,9 +125,8 @@ .AddIIntegrationEventConverter(typeof(Program)) .UseCap(typeof(Program)) .AddContextIntegrationFilters(); - builder.Services.AddMultiEnv(envOption => envOption.ServiceName = "Abc.Template") - .AddEnvIntegrationFilters() - .AddEnvServiceSelector(); + + builder.Services.AddCap(x => { x.JsonSerializerOptions.Converters.Add(new EntityIdJsonConverterFactory()); @@ -147,18 +143,30 @@ .AddKnownExceptionValidationBehavior() .AddUnitOfWorkBehaviors()); + #region 多环境支持与服务注册发现 + + builder.Services.AddMultiEnv(envOption => envOption.ServiceName = "Abc.Template") + .UseMicrosoftServiceDiscovery(); + builder.Services.AddConfigurationServiceEndpointProvider(); + builder.Services.AddEnvFixedConnectionChannelPool(); + + #endregion + #region 远程服务客户端配置 - var ser = new NewtonsoftJsonContentSerializer(new JsonSerializerSettings + var jsonSerializerSettings = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver(), NullValueHandling = NullValueHandling.Ignore, ReferenceLoopHandling = ReferenceLoopHandling.Ignore - }); + }; + jsonSerializerSettings.AddNetCorePalJsonConverters(); + var ser = new NewtonsoftJsonContentSerializer(jsonSerializerSettings); var settings = new RefitSettings(ser); builder.Services.AddRefitClient(settings) .ConfigureHttpClient(client => - client.BaseAddress = new Uri(builder.Configuration.GetValue("UserService:BaseUrl")!)) + client.BaseAddress = new Uri(builder.Configuration.GetValue("https+http://user:8080")!)) + .AddMultiEnvMicrosoftServiceDiscovery() //多环境服务发现支持 .AddStandardResilienceHandler(); //添加标准的重试策略 #endregion @@ -170,6 +178,7 @@ #endregion + var app = builder.Build(); if (app.Environment.IsDevelopment()) { @@ -211,7 +220,7 @@ } finally { - await Log.CloseAndFlushAsync(); + await Log.CloseAndFlushAsync(); } #pragma warning disable S1118 diff --git a/template/src/ABC.Template.Web/appsettings.Development.json b/template/src/ABC.Template.Web/appsettings.Development.json index 0c208ae..8bd515e 100644 --- a/template/src/ABC.Template.Web/appsettings.Development.json +++ b/template/src/ABC.Template.Web/appsettings.Development.json @@ -4,5 +4,28 @@ "Default": "Information", "Microsoft.AspNetCore": "Warning" } + }, + "ConnectionStrings": { + "MySql": "Server=localhost;User ID=root;Password=123456;Database=demo;SslMode=none", + "Redis": "localhost:6379" + }, + "RabbitMQ": { + "HostName": "localhost", + "UserName": "guest", + "Password": "guest", + "VirtualHost": "/", + "Port": 5672 + }, + "Services": { + "user": { + "https": [ + "https://user:8443" + ] + }, + "user-v2": { + "https": [ + "https://user-v2:8443" + ] + } } } diff --git a/template/src/ABC.Template.Web/appsettings.json b/template/src/ABC.Template.Web/appsettings.json index e1164ad..ec04bc1 100644 --- a/template/src/ABC.Template.Web/appsettings.json +++ b/template/src/ABC.Template.Web/appsettings.json @@ -5,17 +5,5 @@ "Microsoft.AspNetCore": "Warning" } }, - "AllowedHosts": "*", - "ConnectionStrings": { - "MySql": "Server=localhost;User ID=root;Password=123456;Database=demo;SslMode=none", - "PostgreSQL": "Host=localhost;Username=postgres;Password=123456;Database=demo", - "Redis": "localhost:6379" - }, - "RabbitMQ": { - "HostName": "localhost", - "UserName": "guest", - "Password": "guest", - "VirtualHost": "/", - "Port": 5672 - } + "AllowedHosts": "*" } \ No newline at end of file