From e0f80172a46146a2f980f4e34f96f23059450610 Mon Sep 17 00:00:00 2001 From: zhangxy Date: Wed, 18 Mar 2026 17:31:00 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=B7=BB=E5=8A=A0Apollo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Sln.Wcs/Controllers/WcsController.cs | 24 ++++- Sln.Wcs/Program.cs | 51 +++++++++- Sln.Wcs/Properties/launchSettings.json | 12 +++ Sln.Wcs/Sln.Wcs.csproj | 16 ++++ Sln.Wcs/Startup.cs | 15 ++- Sln.Wcs/appsettings.json | 125 +++++++++++++------------ 6 files changed, 173 insertions(+), 70 deletions(-) create mode 100644 Sln.Wcs/Properties/launchSettings.json diff --git a/Sln.Wcs/Controllers/WcsController.cs b/Sln.Wcs/Controllers/WcsController.cs index 5bcddf9..087b03c 100644 --- a/Sln.Wcs/Controllers/WcsController.cs +++ b/Sln.Wcs/Controllers/WcsController.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Configuration; namespace Sln.Wcs.Controllers { @@ -11,6 +12,27 @@ namespace Sln.Wcs.Controllers [Route("api/[controller]")] public class WcsController : ControllerBase { - + private readonly IConfiguration _configuration; + public WcsController(IConfiguration configuration) + { + _configuration = configuration; + } + + [HttpGet] + public string GetName() + { + //var a = _configuration.GetSection("Name"); + var a = _configuration.GetValue("Name"); + Console.WriteLine(a + "\n"); + return a; + //return JsonConvert.SerializeObject(a); + } + [HttpGet] + public string GetID() + { + var a = _configuration.GetValue("ID"); + Console.WriteLine(a + "\n"); + return a; + } } } diff --git a/Sln.Wcs/Program.cs b/Sln.Wcs/Program.cs index 09a5e24..9bf4b6c 100644 --- a/Sln.Wcs/Program.cs +++ b/Sln.Wcs/Program.cs @@ -5,6 +5,12 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Serilog; using Sln.Wcs.Serilog; +using Microsoft.Extensions.Configuration; +using Com.Ctrip.Framework.Apollo; +using Microsoft.OpenApi; +using Swashbuckle.AspNetCore.Swagger; +using Microsoft.AspNetCore.Hosting.Server.Features; +using Microsoft.AspNetCore.Hosting.Server; namespace Sln.Wcs { public class Program @@ -18,8 +24,8 @@ namespace Sln.Wcs Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("Test!"); var host = CreateHostBuilder(args).Build(); - var hostTask = host.RunAsync(); + var hostTask = host.RunAsync(); //serilogHelper = host.Services.GetRequiredService(); while (true) { @@ -37,19 +43,54 @@ namespace Sln.Wcs } public static IHostBuilder CreateHostBuilder(string[] args) => - Host.CreateDefaultBuilder(args) - + Host.CreateDefaultBuilder(args).ConfigureAppConfiguration((context, config) => + { + var builtConfig = config.Build(); + + config.AddApollo(builtConfig.GetSection("Apollo")) + .AddNamespace("application") + .AddDefault(); + }) + .UseSerilog((context, config) => { }) .UseServiceProviderFactory(new AutofacServiceProviderFactory()) .ConfigureServices((hostContext, services) => { - //services.AddHostedService(); + services.AddEndpointsApiExplorer(); + services.AddSwaggerGen(c => + { + c.SwaggerDoc("v1", new OpenApiInfo + { + Title = "My API", + Version = "v1", + Description = "API 文档" + }); + }); + //services.AddHostedService(); }) .ConfigureWebHostDefaults(webBuilder => { - //webBuilder.UseStartup(); + webBuilder.Configure(app => + { + // 配置中间件管道 + var env = app.ApplicationServices.GetRequiredService(); + + if (env.IsDevelopment()) + { + app.UseSwagger(); + app.UseSwaggerUI(c=> { c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"); }); + } + + // 其他中间件配置 + app.UseRouting(); + app.UseEndpoints(endpoints => + { + endpoints.MapControllers(); + }); + }); + webBuilder.UseStartup(); }); } } diff --git a/Sln.Wcs/Properties/launchSettings.json b/Sln.Wcs/Properties/launchSettings.json new file mode 100644 index 0000000..6aac153 --- /dev/null +++ b/Sln.Wcs/Properties/launchSettings.json @@ -0,0 +1,12 @@ +{ + "profiles": { + "Sln.Wcs": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "https://localhost:55532;http://localhost:55533" + } + } +} \ No newline at end of file diff --git a/Sln.Wcs/Sln.Wcs.csproj b/Sln.Wcs/Sln.Wcs.csproj index 5da35df..7372ff3 100644 --- a/Sln.Wcs/Sln.Wcs.csproj +++ b/Sln.Wcs/Sln.Wcs.csproj @@ -7,12 +7,28 @@ enable + + + + + + + PreserveNewest + + + + + + + + + diff --git a/Sln.Wcs/Startup.cs b/Sln.Wcs/Startup.cs index 623ce53..ded0baf 100644 --- a/Sln.Wcs/Startup.cs +++ b/Sln.Wcs/Startup.cs @@ -11,7 +11,6 @@ using Microsoft.Extensions.DependencyInjection; using Sln.Wcs.Serilog; using Sln.Wcs.Common; using Sln.Wcs.Config; -using Sln.Wcs.Redis; using Sln.Wcs.Setup; namespace Sln.Wcs @@ -48,7 +47,7 @@ namespace Sln.Wcs // 注册 SerilogHelper 服务 services.AddSingleton(); - services.AddSingleton(); + //services.AddSingleton(); //注册AppConfig services.AddSingleton(provider => @@ -58,12 +57,18 @@ namespace Sln.Wcs }); //注册ORM - services.AddSqlSugarSetup(); + //services.AddSqlSugarSetup(); //注册PLC工厂 - services.AddPlcFactorySetup(); + //services.AddPlcFactorySetup(); - services.AddRfidFactorySetup(); + //services.AddRfidFactorySetup(); + } + + public void Configure(IApplicationBuilder app, IWebHostEnvironment env) + { + //启用Serilog中间件 + app.UseSerilogExtensions(); } } } diff --git a/Sln.Wcs/appsettings.json b/Sln.Wcs/appsettings.json index bd63a5f..e89899d 100644 --- a/Sln.Wcs/appsettings.json +++ b/Sln.Wcs/appsettings.json @@ -1,63 +1,70 @@ { - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft": "Warning", - "Microsoft.Hosting.Lifetime": "Information" - } - }, - "AllowedHosts": "*", - "AppConfig": { - "logPath": "E:\\桌面\\SlnMesnac\\SlnMesnac.WPF\\bin\\Debug\\net6.0-windows", - "SqlConfig": [ - { - "configId": "wcs", - "dbType": 0, - // "connStr": "Data Source=127.0.0.1;Port=3306;Initial Catalog=jhrl_wcs;uid=root;pwd=root;Charset=utf8mb4;SslMode=none;Connect Timeout=100" - "connStr": "Data Source=192.168.228.241;Port=3306;Initial Catalog=jhrl_wcs;uid=root;pwd=root;Charset=utf8mb4;SslMode=none;Connect Timeout=100", - //"connStr": "Data Source=119.45.202.115;Port=3306;Initial Catalog=jhrl_wcs;uid=root;pwd=haiwei@123;Charset=utf8mb4;SslMode=none;Connect Timeout=100" - } - //{ - // "configId": "mcs", - // "dbType": 3, - // "connStr": "Data Source=175.27.215.92/helowin;User ID=aucma_scada;Password=aucma" - //} - ], - "PlcConfig": [ - { - "configId": 1, - "plcType": "SiemensPlc", - //"plcIp": "192.168.0.7", - "plcIp": "172.16.160.61", - //"plcIp": "127.0.0.1", - "plcPort": 102, - //"plcPort": 20108, - // 3#车间上料点plc - "plcKey": "workShop3Plc", - "isFlage": true - }, - { - "configId": 2, - "plcType": "SiemensPlc", - //"plcIp": "192.168.0.7", - //"plcPort": 20108, - "plcIp": "172.16.160.60", - "plcPort": 102, - // 2#计量室相关点位 - "plcKey": "workShop2Plc", - "isFlage": true + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" } + }, + "AllowedHosts": "*", + "AppConfig": { + "logPath": "E:\\桌面\\SlnMesnac\\SlnMesnac.WPF\\bin\\Debug\\net6.0-windows", + "SqlConfig": [ + { + "configId": "wcs", + "dbType": 0, + // "connStr": "Data Source=127.0.0.1;Port=3306;Initial Catalog=jhrl_wcs;uid=root;pwd=root;Charset=utf8mb4;SslMode=none;Connect Timeout=100" + "connStr": "Data Source=192.168.228.241;Port=3306;Initial Catalog=jhrl_wcs;uid=root;pwd=root;Charset=utf8mb4;SslMode=none;Connect Timeout=100" + //"connStr": "Data Source=119.45.202.115;Port=3306;Initial Catalog=jhrl_wcs;uid=root;pwd=haiwei@123;Charset=utf8mb4;SslMode=none;Connect Timeout=100" + } + //{ + // "configId": "mcs", + // "dbType": 3, + // "connStr": "Data Source=175.27.215.92/helowin;User ID=aucma_scada;Password=aucma" + //} + ], + "PlcConfig": [ + { + "configId": 1, + "plcType": "SiemensPlc", + //"plcIp": "192.168.0.7", + "plcIp": "172.16.160.61", + //"plcIp": "127.0.0.1", + "plcPort": 102, + //"plcPort": 20108, + // 3#车间上料点plc + "plcKey": "workShop3Plc", + "isFlage": true + }, + { + "configId": 2, + "plcType": "SiemensPlc", + //"plcIp": "192.168.0.7", + //"plcPort": 20108, + "plcIp": "172.16.160.60", + "plcPort": 102, + // 2#计量室相关点位 + "plcKey": "workShop2Plc", + "isFlage": true + } - ], - "RfidConfig": [ - { - "configId": 1, - "equipIp": "192.168.0.7", - "equipPort": 20108, - "equipKey": "1", - "isFlage": false - } - ], - "redisConfig": "175.27.215.92:6379,password=redis@2023" - } + ], + "RfidConfig": [ + { + "configId": 1, + "equipIp": "192.168.0.7", + "equipPort": 20108, + "equipKey": "1", + "isFlage": false + } + ], + "redisConfig": "175.27.215.92:6379,password=redis@2023" + }, + + "Apollo": { + "AppId": "ApolloTest", + "Env": "DEV", + "MetaServer": "http://119.45.202.115:4320", + "ConfigServer": [ "http://119.45.202.115:4320" ] + } } \ No newline at end of file