Startup.cs 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. using LJProxy.Providers;
  2. using LJProxy.Services;
  3. using LJProxy.Settings;
  4. using Microsoft.AspNetCore.Builder;
  5. using Microsoft.AspNetCore.Hosting;
  6. using Microsoft.AspNetCore.Http;
  7. using Microsoft.AspNetCore.Http.Features;
  8. using Microsoft.AspNetCore.HttpsPolicy;
  9. using Microsoft.AspNetCore.Mvc;
  10. using Microsoft.AspNetCore.StaticFiles;
  11. using Microsoft.Extensions.Configuration;
  12. using Microsoft.Extensions.DependencyInjection;
  13. using Microsoft.Extensions.Hosting;
  14. using Microsoft.Extensions.Logging;
  15. using System;
  16. using System.Collections.Generic;
  17. using System.Linq;
  18. using System.Threading.Tasks;
  19. namespace LJProxy
  20. {
  21. public class Startup
  22. {
  23. public Startup(IConfiguration configuration)
  24. {
  25. Configuration = configuration;
  26. }
  27. public IConfiguration Configuration { get; }
  28. // This method gets called by the runtime. Use this method to add services to the container.
  29. public void ConfigureServices(IServiceCollection services)
  30. {
  31. services.AddControllers().AddNewtonsoftJson(opt => {
  32. //opt.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver();
  33. });
  34. services.Configure<AppSettings>(Configuration.GetSection("Appsettings"));
  35. services.AddSingleton<LJClientPoolService>();
  36. services.AddScoped<VersionService>();
  37. GlobalVar.InitSetting(Configuration.GetSection("Appsettings"));
  38. services.AddHttpClient();
  39. services.Configure<FormOptions>(opt => {
  40. // opt.ValueLengthLimit = 20 * 1024 * 1024;
  41. // opt.MultipartBodyLengthLimit = 20* 1024 * 1024;
  42. // opt.MultipartHeadersCountLimit = 5;
  43. });
  44. services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
  45. }
  46. // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
  47. public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
  48. {
  49. if (env.IsDevelopment())
  50. {
  51. app.UseDeveloperExceptionPage();
  52. }
  53. app.UseHttpsRedirection();
  54. app.UseRouting();
  55. app.UseAuthorization();
  56. app.UseEndpoints(endpoints =>
  57. {
  58. endpoints.MapControllers();
  59. });
  60. app.UseDefaultFiles();
  61. var provider = new FileExtensionContentTypeProvider();
  62. provider.Mappings[".apk"] = "application/vnd.android.package-archive";
  63. app.UseStaticFiles(new StaticFileOptions
  64. {
  65. FileProvider = new L1SvrFileProvider(env.ContentRootPath, app.ApplicationServices.GetService<LJClientPoolService>(), app.ApplicationServices.GetService<IHttpContextAccessor>()),
  66. ContentTypeProvider = provider
  67. });
  68. }
  69. }
  70. }