Net Core基本结构

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Fanbin168/article/details/89458617

1

using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;

namespace NetCoreApp
{
    public class Program
    {
        public static void Main(string[] args)
        {
            CreateWebHostBuilder(args).Build().Run();//CreateWebHostBuilder启动了Kestrel服务器,这个服务器负责监听--转发--响应客户端请求(这样就不需要IIS来负责监听,转发,响应客户端请求了,IIS就只做反向代理就行了)
        }

        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>();
    }
}

2

using log4net;
using log4net.Config;
using log4net.Repository;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using System.IO;

namespace NetCoreApp
{
    public class Startup
    {
        //为StartUp.cs添加属性
        public static ILoggerRepository repository { get; set; }
        public IConfiguration Configuration { get; } //构造函数注入:Configuration用于读取配置文件的
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
            Configuration = configuration;
            //log4net
            repository = LogManager.CreateRepository("NetCoreApp");
            //指定配置文件
            XmlConfigurator.Configure(repository, new FileInfo("log4net.config"));
        }



        //这是公共语言运行时(CLR)环境所调用的一个方法,这个方法这样就是向我们的内置IOC容器中注册服务的(我们也可以不要这个方法,我们可以用AutofacIOC容器)
        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure<CookiePolicyOptions>(options =>
            {

                options.CheckConsentNeeded = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
            services.AddSession();
        }

        //这个是核心方法,它也是公共语言运行时(CLR)环境所调用的一个方法,这个方法用来设置HTTP请求的管道(pipeline),其本质就是决定这个请求具体怎么处理
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory factory)
        {
            if (env.IsDevelopment()) //判断是否是开发环境
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error"); //如果不是开发环境就返回一个默认的错误页
            }

            app.UseStaticFiles(); //启用StaticFiles中间件(即:启用静态文件服务)用来满足静态文件的请求处理,不启用的话我们也就拿不到静态文件了
            app.UseCookiePolicy(); //启用Cookie
            app.UseSession(); //启用Session ;需要同时在ConfigureServices方法中添加services.AddSession();这段代码


            app.UseMvc(routes => //启用MVC,UseMvc表示我们这哥请求最终以MVC模式来请求
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
            });

        }
    }
}

猜你喜欢

转载自blog.csdn.net/Fanbin168/article/details/89458617