.Net Core 2.1 升级3.1 问题整理

2.1版本的文件代码:

复制代码
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using System;

namespace S2_Xxxx_XxxNetApi
{
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
Console.WriteLine(“接口启动成功”);
// QuartzHelper.ExecuteInterval(200);
}

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
        //.UseUrls("http://*:5000")//发布时需要注释
        .UseStartup<Startup>();
}

}
复制代码
3.1版本的文件代码

复制代码
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
using System;

namespace S2_Cggc_PmsNetApi
{
///
/// 启动
///
public class Program
{
///
/// 启动
///
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
Console.WriteLine(“接口启动成功”);
}

    /// <summary>
    /// 启动
    /// </summary>
    public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
            });
}

}
复制代码
然后就是Startup文件,代码如下:

2.1版本文件代码:

复制代码
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Infrastructure;
using Microsoft.AspNetCore.Routing;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Quartz;
using Quartz.Impl;
using S2_Xxxx_XxxNetApi;
using System.Linq;

namespace S2_Xxxx_XxxNetApi
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}

    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.Configure<CookiePolicyOptions>(options =>
        {
            // This lambda determines whether user consent for non-essential cookies is needed for a given request.
            options.CheckConsentNeeded = context => true;
            options.MinimumSameSitePolicy = SameSiteMode.None;
        });

        //调度任务注册
        services.AddSingleton<ISchedulerFactory, StdSchedulerFactory>();//注册ISchedulerFactory的实例。

        string conn = Configuration.GetSection("AppSettings:ConnectString").Value;
        MySqlHelper.Conn = conn;

        string orclconn = Configuration.GetSection("AppSettings:OrclConnectString").Value;
        OracleHelper.connectionString = orclconn;

        string redisconn = Configuration.GetSection("AppSettings:RedisConnectString").Value;
        RedisHelper.SetCon(redisconn);
        RedisHelper.BuildCache();

        services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));

        //跨域支持
        services.AddCors(options =>
        {
            options.AddPolicy("CorsPolicy",
                corsBuild => corsBuild.AllowAnyOrigin()
                .AllowAnyMethod()
                .AllowAnyHeader()
                .AllowCredentials());
        });

        services.Configure<CookiePolicyOptions>(options =>
        {
            options.CheckConsentNeeded = context => false;
            options.MinimumSameSitePolicy = SameSiteMode.None;
        });
        services.AddDistributedMemoryCache();//启用session之前必须先添加内存
                                             //services.AddSession();
        services.AddSession(options =>
        {
            options.Cookie.Name = ".AdventureWorks.Session";
            options.IdleTimeout = System.TimeSpan.FromSeconds(1200);//设置session的过期时间
            options.Cookie.HttpOnly = true;//设置在浏览器不能通过js获得该cookie的值
        });

        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
        services.AddSingleton<IActionContextAccessor, ActionContextAccessor>();

        services.AddSwaggerGen(options =>
        {
            options.SwaggerDoc("v1", new Swashbuckle.AspNetCore.Swagger.Info
            {
                Version = "v1",
                Title = "接口文档"
            });
            options.ResolveConflictingActions(apiDescriptions => apiDescriptions.First());
        });
    }

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Home/Error");
            //app.usehets();
        }
        app.UseSession();
        app.UseHttpsRedirection();
        app.UseStaticFiles();
        app.UseCookiePolicy();

        app.UseSwagger();
        app.UseSwaggerUI(c =>
        {
            c.SwaggerEndpoint("/swagger/v1/swagger.json", "WebAPI文档");
        });


        //跨域支持
        app.UseCors("CorsPolicy");
        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");
        });


    }
}

}
复制代码
3.1版本文件代码:

复制代码
using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Infrastructure;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Quartz;
using Quartz.Impl;
using System;

namespace S2_Cggc_PmsNetApi
{
///
/// 启动
///
public class Startup
{
///
/// 启动
///
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}

    /// <summary>
    /// 启动
    /// </summary>
    public IConfiguration Configuration { get; }




    /// <summary>
    /// 启动
    /// </summary>
    public void ConfigureServices(IServiceCollection services)
    {

        //启用session之前必须先添加内存
        services.AddDistributedMemoryCache();
        services.AddSession(options =>
        {
            options.Cookie.Name = ".AdventureWorks.Session";
            options.IdleTimeout = System.TimeSpan.FromSeconds(1200);//设置session的过期时间
            options.Cookie.HttpOnly = true;//设置在浏览器不能通过js获得该cookie的值
        });

        services.Configure<CookiePolicyOptions>(options =>
        {
            options.CheckConsentNeeded = context => false;//这里要改为false,默认是true,true的时候session无效
            options.MinimumSameSitePolicy = SameSiteMode.None;
        });



        services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
        .AddCookie();

        services.AddCors(options =>
        {
            options.AddPolicy("any", builder => { builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader(); });
        });




        //注册过滤器
        services.AddSingleton<ApiResultFilterAttribute>();
        services.AddSingleton<ApiExceptionFilterAttribute>();

        services.AddMvc(
                config =>
                {
                    config.EnableEndpointRouting = false;
                    config.Filters.AddService(typeof(ApiResultFilterAttribute));
                    config.Filters.AddService(typeof(ApiExceptionFilterAttribute));
                })
       .SetCompatibilityVersion(CompatibilityVersion.Version_3_0)
        .AddNewtonsoftJson();

        //services.AddMvc(options => { options.Filters.Add<ResultFilterAttribute>(); });

        services.AddSwaggerDocument(); //注册Swagger 服务
        services.AddSingleton<IActionContextAccessor, ActionContextAccessor>();
        //调度任务注册
        services.AddSingleton<ISchedulerFactory, StdSchedulerFactory>();//注册ISchedulerFactory的实例。
        QuartzHelper.AddJobForSeconds<Deduction>();
        QuartzHelper.Start();
    }

    /// <summary>
    /// 启动
    /// </summary>
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        app.UseSession();
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        app.UseHttpsRedirection();

        app.UseRouting();

        app.UseAuthorization();
        app.UseCors("any");
        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllers();
            endpoints.MapControllerRoute(
                    name: "areas",
                    pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
            endpoints.MapControllerRoute(
                   name: "default",
                   pattern: "{controller=Home}/{action=Index}/{id?}");
        });
        app.UseOpenApi(); //添加swagger生成api文档(默认路由文档 /swagger/v1/swagger.json)
        app.UseSwaggerUi3();//添加Swagger UI到请求管道中(默认路由: /swagger).
        app.UseHttpsRedirection();
        app.UseStaticFiles();
        app.UseCookiePolicy();
        app.UseAuthentication();
        app.UseMvc(routes => { routes.MapRoute(name: "default", template: "{controller=Home}/{action=Index}/{id?}"); });
    }
}

}
USB Microphone https://www.soft-voice.com/
Wooden Speakers https://www.zeshuiplatform.com/
亚马逊测评 www.yisuping.cn
深圳网站建设www.sz886.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值