12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Threading.Tasks;
- using Microsoft.AspNetCore.Builder;
- using Microsoft.AspNetCore.Hosting;
- using Microsoft.AspNetCore.HttpsPolicy;
- using Microsoft.Extensions.Configuration;
- using Microsoft.Extensions.DependencyInjection;
- using Microsoft.Extensions.Hosting;
- using Newtonsoft.Json.Serialization;
- using Quartz;
- using Quartz.Impl;
- using WCS.Data;
- using WCS.Workflow;
- namespace WCS.Service
- {
- public class Startup
- {
- public Startup(IConfiguration configuration)
- {
- Configuration = configuration;
- SugarBase.DBConnectionString = Configuration["SQLServer"];
- AppSettingsHelper.AppSettings = Configuration.GetSection("AppSettings").Get<AppSettings>();
- }
- public IConfiguration Configuration { get; }
- // This method gets called by the runtime. Use this method to add services to the container.
- public void ConfigureServices(IServiceCollection services)
- {
- services.AddControllersWithViews();
- Log4netHelper.InitLog4net("NETCoreRepository");
- services.AddMvc().AddNewtonsoftJson(options =>
- {
- options.SerializerSettings.ContractResolver = new DefaultContractResolver(); //去除首字母小写
- options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm"; //格式化时间
- });
- //services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));
- #region 注入 Quartz调度类
- services.AddSingleton<QuartzStartup>();
- //注册ISchedulerFactory的实例
- services.AddSingleton<ISchedulerFactory, StdSchedulerFactory>();
- #endregion;
- }
- // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
- public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IHostApplicationLifetime appLifetime)
- {
- if (env.IsDevelopment())
- {
- app.UseDeveloperExceptionPage();
- }
- else
- {
- app.UseExceptionHandler("/Home/Error");
- // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
- app.UseHsts();
- }
- Log4netHelper.Logger_Info.InfoFormat("服务重启");
- InitWorkflow.InitData();
- //获取前面注入的Quartz调度类
- var quartz = app.ApplicationServices.GetRequiredService<QuartzStartup>();
- appLifetime.ApplicationStarted.Register(() =>
- {
- quartz.Start().Wait();
- });
- appLifetime.ApplicationStopped.Register(() =>
- {
- quartz.Stop();
- });
- app.UseHttpsRedirection();
- app.UseStaticFiles();
- app.UseRouting();
- app.UseAuthorization();
- app.UseEndpoints(endpoints =>
- {
- endpoints.MapControllerRoute(
- name: "default",
- pattern: "{controller=Home}/{action=Index}/{id?}");
- });
- }
- }
- }
|