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"];
}

 

posted @ 2023-12-11 10:18  microsoft-zhcn  阅读(66)  评论(0编辑  收藏  举报