Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 

78 wiersze
2.9 KiB

  1. using Microsoft.Extensions.DependencyInjection;
  2. using Microsoft.Extensions.Hosting;
  3. using Microsoft.Extensions.Logging;
  4. using NLog.Extensions.Logging;
  5. using System;
  6. using System.Threading.Tasks;
  7. using JT808.Protocol;
  8. using JT808.DotNetty.Client;
  9. using JT808.DotNetty.CleintBenchmark.Configs;
  10. using Microsoft.Extensions.Configuration;
  11. using Microsoft.AspNetCore.Hosting;
  12. using Microsoft.AspNetCore.Builder;
  13. using JT808.DotNetty.CleintBenchmark.Services;
  14. namespace JT808.DotNetty.CleintBenchmark
  15. {
  16. class Program
  17. {
  18. static async Task Main(string[] args)
  19. {
  20. var serverHostBuilder = new HostBuilder()
  21. .ConfigureAppConfiguration((hostingContext, config) =>
  22. {
  23. config.SetBasePath(AppDomain.CurrentDomain.BaseDirectory);
  24. config.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
  25. })
  26. .ConfigureWebHostDefaults(webBuilder =>
  27. {
  28. webBuilder.Configure(app =>
  29. {
  30. app.UseRouting();
  31. app.UseCors("Domain");
  32. app.UseStaticFiles();
  33. app.UseDefaultFiles("/index.html");
  34. app.UseEndpoints(endpoints =>
  35. {
  36. endpoints.MapControllers();
  37. });
  38. })
  39. .ConfigureServices((hostContext, services) =>
  40. {
  41. services.AddControllers();
  42. services.AddCors(options =>
  43. options.AddPolicy("Domain", builder =>
  44. builder.AllowAnyOrigin()
  45. .AllowAnyMethod()
  46. .AllowAnyHeader()
  47. .AllowAnyOrigin()));
  48. });
  49. })
  50. .ConfigureLogging((context, logging) =>
  51. {
  52. if (Environment.OSVersion.Platform == PlatformID.Unix)
  53. {
  54. NLog.LogManager.LoadConfiguration("Configs/nlog.unix.config");
  55. }
  56. else
  57. {
  58. NLog.LogManager.LoadConfiguration("Configs/nlog.win.config");
  59. }
  60. logging.AddNLog();
  61. logging.SetMinimumLevel(LogLevel.Trace);
  62. })
  63. .ConfigureServices((hostContext, services) =>
  64. {
  65. services.Configure<ClientBenchmarkOptions>(hostContext.Configuration.GetSection("ClientBenchmarkOptions"));
  66. services.AddSingleton<ILoggerFactory, LoggerFactory>();
  67. services.AddSingleton(typeof(ILogger<>), typeof(Logger<>));
  68. services.AddJT808Configure()
  69. .AddJT808Client();
  70. services.AddHostedService<CleintBenchmarkHostedService>();
  71. });
  72. await serverHostBuilder.RunConsoleAsync();
  73. }
  74. }
  75. }