首页 > 编程语言 >ASP.NET Core Program 类

ASP.NET Core Program 类

时间:2023-12-11 10:37:27浏览次数:30  
标签:Core app 中间件 应用程序 Program Services NET 添加 builder

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

 

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

 

标签:Core,app,中间件,应用程序,Program,Services,NET,添加,builder
From: https://www.cnblogs.com/microsoft-zh/p/17893789.html

相关文章

  • 解决Visual Studio 2022升级到17.8之后,Visual AssistX功能OpenCorespondingFile快捷键
    冲突的命令是:Edit.IntelliCode.APIUsageExamples,这是v17.7的:  这是17.8的:  所以,解决方法就是在新版本中,将Edit.IntelliCode.APIUsageExamples的快捷键移除,并重新为VAssistX.OpenCorespondingFile添加Alt+O的全局快捷键即可。改好后可以在VAX的菜单中看到,如果没生效,......
  • .NET Conf 2023 Chengdu 圆满结束!
    今年的.NETConf2023,中国区首次有两个会场举办LocalEvent,成都会场已于上周六12月9日圆满结束。本次成都会场共计100+余名.NET开发者报名参与,共计10+名志愿者参与筹备,是成都.NET社区历年来活动之最,还吸引了来自重庆地区,甚至大连地区的开发者也来参与,衷心感谢大家对本次活动的支......
  • Net Core 伪静态配置
    创建伪静态类usingMicrosoft.AspNetCore.Mvc.ApplicationModels;usingSystem.Text;namespaceMicro.Web{publicclassHtmlExtensionPageRouteModelConvention:IPageRouteModelConvention{publicvoidApply(PageRouteModelmodel){......
  • .NET企业应用安全开发动向-概览
    太长不读版:试图从安全的全局视角触发,探讨安全的重要性,讨论如何识别安全问题的方法,介绍.NET提供的与安全相关的基础设施,以及一些与时俱进的安全问题,为读者建立体系化的安全思考框架。引言关于“安全”二字,“一千个读者有一个哈姆雷特”,有人说安全就是杀毒软件,有人说安全就是第三......
  • 小程序物联网连接onenet
    wxml页面<view class="zong"><!--注释--><!-- 头--><view class="header"><view class="one"><text>空气质量:良好</text><text>广州市</text></view><!--注释--><view c......
  • Retentive Networks Meet Vision Transformers, 视觉RetNet
    alias:Fan2023tags:RetNetrating:⭐share:falseptype:articleRMT:RetentiveNetworksMeetVisionTransformers初读印象comment::(RMT)RetentiveNetwork(RetNet)因其显式衰减机制而在自然语言处理中受到关注,但它不适合基于图像的任务。本文提出了保留性自我注意力......
  • 2023 CCPC Henan Provincial Collegiate Programming Contest
    Preface徐神在训练前宣称要复习计通网,结果最后还是相当于全程参与了我们的训练这场我纯纯战犯表现,Easy题E狂挂7发最后发现原来是多测没清空干净,直接红温占用中期1h机时但好在祁神稳切了一手压轴计算几何,同时最后2h把卡着的题都过完了,最后又靠着题数捧杯(唉还在打弱省省赛找自信)......
  • AgileConfig 1.8.0 已适配 .NET8
    Hello大家好。本月圈子里最大的事莫过于.NET8正式release。群友们都在适配.NET8。抽个周末我也把AgileConfig升级到了.NET8。下面把升级的过程简单记录一下,其中有个小坑,对大家升级的时候可能有所帮助。升级升级.NET8修改所有项目的目标框架为.NET8.0升级nuget包......
  • Netty源码学习8——从ThreadLocal到FastThreadLocal(如何让FastThreadLocal内存泄漏do
    系列文章目录和关于我一丶引入在前面的netty源码学习中经常看到FastThreadLocal的身影,这一篇我们将从ThreadLocal说起,来学习FastThreadLocal的设计(《ThreadLocal源码学习笔记》)二丶从ThreadLocal说起ThreadLocal是JDK中实现线程隔离的一个工具类。实现线程隔离maybe你第一反应......
  • .net core - 本地使用minikube搭建k8s - k8s(微服务学习) 一
    1.Docker-Desktop首先本地电脑需要安装docker-desktopDocker-Desktop的windows程序下载网址:docker-desktop2.K8s安装1.kubectl下载首先创建一个文件夹目录kubectl得安装可使用2种方式1.直接下载exe后放到该目录下载最新补丁版1.28: kubectl1.28.4。2.在创建目录......