ASP.NET Core Program 类
ASP.NET Core基础,参考:https://www.cnblogs.com/cqpanda/p/16834803.html
ASP.NET Core教程-跨域配置(CORS Configuration) :https://www.cnblogs.com/cqpanda/p/16846544.html
ASP.NET Core教程-认证配置(token-based authentication) :https://www.cnblogs.com/cqpanda/p/16846547.html
ASP.NET Core教程-Configuration(配置)-Cookie & Session :https://www.cnblogs.com/cqpanda/p/16846551.html
ASP.NET Core教程-Configuration(配置)- HTTPS:https://www.cnblogs.com/cqpanda/p/16846555.html
ASP.NET Core教程-Configuration(配置)-Exception & Error Handler:https://www.cnblogs.com/cqpanda/p/16856695.html
ASP.NET Core教程-Configuration(配置)-返回XML :https://www.cnblogs.com/cqpanda/p/16856698.html
ASP.NET Core教程-Configuration(配置)- Cache(缓存) :https://www.cnblogs.com/cqpanda/p/16856710.html
ASP.NET Core教程-Configuration(配置)-Swagger:https://www.cnblogs.com/cqpanda/p/16856743.html
ASP.NET Core教程-Configuration(配置)-后台服务 :https://www.cnblogs.com/cqpanda/p/16868481.html
ASP.NET Core教程-Configuration(配置)-JWT :https://www.cnblogs.com/cqpanda/p/16868483.html
ASP.NET Core教程-Configuration(配置)-配置Kestrel服务器 :https://www.cnblogs.com/cqpanda/p/16882674.html
ASP.NET Core教程-Configuration(配置)-预定义中间件-静态文件支持 :https://www.cnblogs.com/cqpanda/p/16882678.html
ASP.NET Core教程-Configuration(配置)-文件上传 :https://www.cnblogs.com/cqpanda/p/16882681.html
ASP.NET Core教程-Dependency Injection(依赖注入):https://www.cnblogs.com/cqpanda/p/16894788.html
ASP.NET Core教程-Services(服务):https://www.cnblogs.com/cqpanda/p/16894793.html
ASP.NET Core教程-Middleware(中间件) :https://www.cnblogs.com/cqpanda/p/16894814.html
ASP.NET Core教程-Routing(路由) :https://www.cnblogs.com/cqpanda/p/16907942.html
ASP.NET Core教程-Exception(异常和错误处理) :https://www.cnblogs.com/cqpanda/p/16907943.html
ASP.NET Core教程-Logging(日志) :https://www.cnblogs.com/cqpanda/p/16907949.html
ASP.NET Core教程-Filter(过滤器) :https://www.cnblogs.com/cqpanda/p/16907950.html
ASP.NET Core教程-Model Binding(模型绑定) :https://www.cnblogs.com/cqpanda/p/16921188.html
NetCore + SignalR 实现日志消息推送:https://www.cnblogs.com/laozhang-is-phi/p/netcore-vue-signalr.html
ASP.NET Core在IIS运行时直接更新程序的办法:https://www.cnblogs.com/cqpanda/p/16937638.html
参考:https://www.cnblogs.com/cqpanda/p/16834832.html
Program类是ASP.NET Core 应用程序的一个入口点,它位于应用程序的根目录下,它定义了.NET Core应用程序所需的服务和中间件组件。
Program类默认代码如下:
var builder = WebApplication.CreateBuilder(args); var app = builder.Build(); app.MapGet("/", () => "Hello World!"); app.Run();
注册服务和配置请求管道:
//添加Razor Pages 服务 builder.Services.AddControllersWithViews();
//添加Razor Pages 服务 builder.Services.AddRazorPages();
//为应用程序注册 Identity 服务 builder.Services.AddDefaultIdentity();
//注入DbContext builder.Services.AddDbContext<AppDbContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));
//依赖注入: //Singleton 单例,该实例在需要它的所有组件之间共享。因此始终使用同一实例。 builder.Services.AddSingleton<Isite, site>(); //Scoped 范围,在对应用程序的每个请求上都会创建一个范围,因此每个请求将创建一次注册为Scoped的任何组件。 builder.Services.AddScoped<Isite, site>(); //Transient 短暂,在每次被请求时都会创建,并且永不共享。 builder.Services.AddTransient<Isite, site>();
//添加开发模式下异常处理中间件 if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); }
//生产环境下添加异常处理中间件 if (!app.Environment.IsDevelopment()) { app.UseExceptionHandler("/Home/Error"); }
环境变量配置提供程序
环境类型 | 环境说明 |
---|---|
Development | 开发环境 |
Staging | 演示(临时、演示)环境 |
Production | 生产环境 |
编辑launchSettings.json文件设置环境变量
//添加https跳转中间件,该中间件强制所有的http请求跳转到https app.UseHttpsRedirection();
//添加静态文件中间件,该中间件启用静态文件服务 app.UseStaticFiles();
//添加路由中间件,该中间件将请求匹配到终结点 app.UseRouting();
//添加Authorization 中间件 app.UseAuthorization ();
//添加 Authentication 中间件 app.UseAuthentication();
//添加路由终结点中间件,该中间件执行匹配的终结点 app.UseEndpoints(endpoints => { endpoints.MapControllers(); });
//添加路由中间件匹配进入的url请求并且映射他们到actions方法 app.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}");
MemoryConfigurationSource(内存配置提供程序)
var mySettings = new Dictionary<string, string> { }; mySettings.Add("Title", "标题"); mySettings.Add("Content", "内容"); builder.Configuration.AddInMemoryCollection(mySettings);
在控制器中调用
[HttpGet("ConfigTest")] public string ConfigTest([FromServices] IConfiguration configuration) { //获得配置文件中的具体值 return configuration["Title"]; }