当前位置: 首页 > news >正文

CORE 中间件、wwwroot

ASP.NET Core中间件组件是被组装到应用程序管道中以处理HTTP请求和响应的软件组件(从技术上来说,组件只是C#类)。
ASP.NET Core应用程序中的每个中间件组件执行以下任务。

选择是否将 HTTP 请求传递给管道中的下一个组件。这可以通过在中间件中调用下一个 next() 方法实现。
可以在管道中的下一个组件之前和之后执行工作。
在ASP.NET Core中,已经有很多内置的中间件组件可供使用,您可以直接使用它们。 如果需要,还可以在ASP.NET Core应用程序中创建自己的中间件组件。
您需要牢记的最重要的一点是,在ASP.NET Core中,给定的中间件组件应仅具有特定目的,即单一职责

中间件执行顺序

ASP.NET Core中间件组件的执行顺序与添加到管道中的顺序相同。 因此,在将中间件组件添加到请求处理管道时

namespace WebApplication2
{public class Program{public static void Main(string[] args){/** WebApplication 表示整个Web应用程序 ,调用CreateBuilder()方法创建一个WebApplicationBuilder 对象。 * */var builder = WebApplication.CreateBuilder(args);// Add services to the container./*WebApplicationBuilder 对象添加 RazorPages 服务 , 也可以添加其他服务,比如依赖注入、   登录等。*/builder.Services.AddRazorPages();//构造一个 WebApplication 实例。var app = builder.Build();// Configure the HTTP request pipeline.if (!app.Environment.IsDevelopment()){//异常处理中间app.UseExceptionHandler("/Error");}//启用静态文件中间件,加上这行代码后, 我们在浏览器中才能访问 wwwroot 目录下的文件,否则会报错。app.UseStaticFiles();//启用路由中间件,启用后在浏览器中输入网址 Web应用才能正确解析app.UseRouting();//启用权限验证中间件,当我们的网站是基于身份认证的话需要用到,//一般购物网站都需要启用,如果只是纯展示性的比如企业官网等可以去掉。app.UseAuthorization();//启用Razor Pages中间件,如果是MVC应用,则使用 app.UseMvc(); 中间件。app.MapRazorPages();//启动应用,当我们开始执行WebApp , 浏览器就会帮我们打开网站 Index 页面了,app.UseEndpoints(endpoints=>{endpoints.MapGet("/",async context => {await context.Response.WriteAsync("======");});});app.Run();}}
}
定义默认页面 默认查找的顺序
  1. default.htm
  2. default.html
  3. index.htm
  4. index.html

//定义默认页面
app.UseDefaultFiles()
// 可以访问静态文件
app.UseStaticFiles()

》》》必须在启用静态文件中间件之前,先启用默认文件中间件

》》》=================
DefaultFilesOptions options = new DefaultFilesOPtions();
options.DefaultFileNames.clear();// 清空默认的
options.DefaultFileNames.Add(“Default_index.html”);
app.UseDefaultFiles(options);
// 可以访问静态文件
app.UseStaticFiles()

在这里插入图片描述
**注意:**您需要在UseStaticFiles()中间件之前添加UseDefaultFiles()中间件,以便提供默认文件。 您需要记住的一点是UseDefaultFiles()中间件只是URL重写器,它永远不会提供静态文件。 该中间件的工作是简单地将传入URL重写为默认文件,然后由静态文件中间件提供服务。

在这里插入图片描述

》》》 UseFileServer 包含了 UseStaticFiles、UseDefaultFiles 功能

FileServerOptions options = new FileServerOptions();
options.DefaultFilesOptions.DefaultFileNames.Clear();
options.DefaultFilesOptions.DefaultFileNames.Add(“Default_index.html”);
app.UseFileServer(options);
UseFileServer它将静态文件中间件、默认文件中间件的功能结合起来啦。 注意UseFileServer 默认不启用目标浏览,但是支持修改此行为

添加 自己 MIME 类型

经典Asp.net web 应用程序,添加缺少的 MIME类型是在IIS内执行的配置任务,但是,在Asp.Net Core 应用中,IIS(以及其它平台上的Web服务器)只是作为反向代理,将传入的请求简单的转发给 Asp.net core 内置的Web服务器(kestrel),请求将从这里开始穿过请求管道。不过,必须通过代码配置这个管道。

            StaticFileOptions options =new StaticFileOptions();var provider = new FileExtensionContentTypeProvider();// 添加自定义的MIME类型provider.Mappings[".myextension"] = "application/my-custom-type";provider.Mappings[".script"] = "text/javascript";provider.Mappings.Remove(".png");options.ContentTypeProvider = provider;app.UseStaticFiles(options);

Use、Run

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

UseEndpoints 终点中间件

在这里插入图片描述

wwwroot

在这里插入图片描述

http://www.lryc.cn/news/447123.html

相关文章:

  • SpringBoot 与 Maven 快速上手指南
  • 大觅网之自动化部署(Automated Deployment of Da Mi Network)
  • 【C++】入门基础知识-1
  • Redis一些简单通用命令认识常用数据类型和编码方式认识Redis单线程模型
  • 使用电子模拟器 Wokwi 运行 ESP32 示例(Arduino IDE、VSCode、ESP32C3)
  • C嘎嘎入门篇:类和对象(1)
  • tomcat服务搭建部署ujcms网站
  • unity_Occlusion_Culling遮挡剔除学习
  • vue初学随笔
  • IDEA Dependency Analyzer 分析 maven 项目包的依赖
  • 微信小程序 - 最新详细安装使用 Vant weapp UI 框架环境搭建详细教程
  • 【C语言】手把手带你拿捏指针(完)(指针笔试、面试题解析)
  • Vue中input框自动聚焦
  • 基于Node.js+Express+MySQL+VUE实现的计算机毕业设计旅游推荐网站
  • 已存在的Python项目使用依赖管理工具UV
  • JavaWeb美食推荐管理系统
  • 如何像专家一样修复任何 iPhone 上的“iPhone 已禁用”错误
  • django drf to_representation
  • 2024最新国内镜像源设置(npm、yarn、pnpm)
  • Java线程池和原子性
  • 【数据评估与清洗】对数据结构和内容进行清洗
  • 机器学习和深度学习的区别
  • UE虚幻引擎云渲染汽车动画的优势!
  • Teams集成-会议侧边栏应用开发-实时转写
  • 归并排序,外排序,计数排序(非比较排序)
  • 使用离火插件yoloV8数据标注,模型训练
  • JavaScript 学习
  • 【算法】分治:归并之 912.排序数组(medium)
  • Cocos 3.8.3 实现外描边效果(逃课玩法)
  • 著名建筑物检测与识别系统源码分享