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?}");
});
}
}
}