예제 #1
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.

        //Configure 是asp.net core程序用来具体指定如何处理每个http请求的,例如我们可以让程序知道我们使用mvc来处理http请求,
        //那就调用app.UserMvc()这个方法,但是目前所有的http请求都会返回“hello world”
        //执行顺序  Progra.Main()-->ConfigureServices()-->Configure()
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, MyDbContext dbContext)
        {
            /*
             * 请求管道: 那些处理http request并返回responses的代码就组成了request pipeline(请求管道).
             * 中间件: 我们可以做的就是使用一些程序来配置那些请求管道 request pipeline以便处理requests和responses.
             *      比如处理验证(authentication)的程序, 连MVC本身就是个中间件(middleware).
             * 每层中间件接到请求后都可以直接返回或者调用下一个中间件. 一个比较好的例子就是:
             *      在第一层调用authentication验证中间件, 如果验证失败, 那么直接返回一个表示请求未授权的response.
             */

            //添加种子数据,自己写的
            dbContext.EnsureSeedDataForContext();


            //添加Nlog
            loggerFactory.AddNLog();

            if (env.IsDevelopment())
            {
                //一个middleware, 当exception发生的时候, 这段程序就会处理它.
                //而判断env.isDevelopment() 表示, 这个middleware只会在Development环境下被调用.
                app.UseDeveloperExceptionPage();
            }
            else
            {
                //正式环境中需要捕获并记录exception,需要使用这个middleware
                app.UseExceptionHandler();
            }


            //使用状态码中间件
            app.UseStatusCodePages();
            //02.使用Mvc中间件
            app.UseMvc();

            /*
             * app.Run(async (context) =>
             * {
             *  //int i = 0,j=10;
             *  //int z = j / i;
             *  await context.Response.WriteAsync("Hello World!");
             * });
             */
        }