Startup.cs 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. using Autofac;
  2. using AutoMapper;
  3. using Bozhon.Wms.Api.Extensions;
  4. using Microsoft.AspNetCore.Builder;
  5. using Microsoft.AspNetCore.Hosting;
  6. using Microsoft.Extensions.Configuration;
  7. using Microsoft.Extensions.DependencyInjection;
  8. using Microsoft.Extensions.Hosting;
  9. using Microsoft.OpenApi.Models;
  10. using SqlSugar;
  11. using System;
  12. using System.IO;
  13. using System.Reflection;
  14. using Wms.Screen.Api.Extensions;
  15. using Wms.Screen.Service.Mapper;
  16. using Wms.Screen.SqlSugar;
  17. namespace Wms.Screen.Api
  18. {
  19. public class Startup
  20. {
  21. public Startup(IConfiguration configuration)
  22. {
  23. Configuration = configuration;
  24. }
  25. public IConfiguration Configuration { get; }
  26. public void ConfigureServices(IServiceCollection services)
  27. {
  28. services.AddCors(options =>
  29. {
  30. options.AddPolicy(name: "cors",
  31. builder =>
  32. builder.AllowAnyOrigin()
  33. .AllowAnyHeader()
  34. .WithMethods("GET", "POST", "HEAD", "PUT", "DELETE", "OPTIONS")
  35. );
  36. });
  37. // 注册Swagger服务
  38. services.AddSwaggerGen(c =>
  39. {
  40. // 添加文档信息
  41. c.SwaggerDoc("v1", new OpenApiInfo
  42. {
  43. Title = "接口文档",
  44. Version = "v1.0.0",
  45. Description = "中天WMS 看板接口",
  46. });
  47. // 使用反射获取xml文件。并构造出文件的路径
  48. var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
  49. var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
  50. // 启用xml注释. 该方法第二个参数启用控制器的注释,默认为false.
  51. c.IncludeXmlComments(xmlPath, true);
  52. });
  53. var sqlSugarConfig = SqlSugarConfig.GetConnectionString(Configuration);
  54. services.AddSqlSugarClient<SqlSugarClient>(config =>
  55. {
  56. config.ConnectionString = sqlSugarConfig.Item2;
  57. config.DbType = sqlSugarConfig.Item1;
  58. config.IsAutoCloseConnection = true;
  59. config.InitKeyType = InitKeyType.Attribute;
  60. //config.IsShardSameThread = true;
  61. });
  62. services.AddAutoMapper(typeof(MyProfile));
  63. services.AddCSRedisCache(Configuration);
  64. services.AddHostedService<HostedServiceExtension>();
  65. services.AddControllers();
  66. }
  67. // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
  68. public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
  69. {
  70. if (env.IsDevelopment())
  71. {
  72. app.UseDeveloperExceptionPage();
  73. }
  74. app.UseHttpsRedirection();
  75. // 启用Swagger中间件
  76. app.UseSwagger();
  77. // 配置SwaggerUI
  78. app.UseSwaggerUI(c =>
  79. {
  80. c.SwaggerEndpoint("/swagger/v1/swagger.json", "1.0.0");
  81. c.RoutePrefix = string.Empty;
  82. });
  83. app.UseRouting();
  84. app.UseCors("cors");
  85. app.UseAuthorization();
  86. //DefaultFilesOptions defaultFilesOptions = new DefaultFilesOptions();
  87. //defaultFilesOptions.DefaultFileNames.Clear();
  88. //defaultFilesOptions.DefaultFileNames.Add("index.html");
  89. //app.UseDefaultFiles(defaultFilesOptions);
  90. //StaticFileOptions staticFileOptions = new StaticFileOptions();
  91. //staticFileOptions.FileProvider = new Microsoft.Extensions.FileProviders.PhysicalFileProvider(@"E:\code\screen\Wms.Screen.Api\Wms.Screen.Api\bin\Debug\netcoreapp3.1\publish\wwwroot\");
  92. //staticFileOptions.FileProvider = new Microsoft.Extensions.FileProviders.PhysicalFileProvider(@"D:\IIS\KANBAN\wwwroot\");
  93. //staticFileOptions.FileProvider = new Microsoft.Extensions.FileProviders.PhysicalFileProvider(@"D:\BZ\KANBAN\wwwroot\");
  94. //staticFileOptions.FileProvider = new Microsoft.Extensions.FileProviders.PhysicalFileProvider(@"C:\iis\KOHLER_KANBAN\wwwroot\");
  95. //app.UseStaticFiles(staticFileOptions);//开启静态文件
  96. app.UseEndpoints(endpoints =>
  97. {
  98. endpoints.MapControllers();
  99. });
  100. }
  101. public void ConfigureContainer(ContainerBuilder builder)
  102. {
  103. //添加依赖注入关系
  104. builder.RegisterModule(new AutofacModuleRegister());
  105. }
  106. }
  107. }