CORE 中间件、wwwroot

news2024/12/26 11:56:26

在这里插入图片描述

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.coloradmin.cn/o/2179873.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《C++》解密--单链表

目录 一、概念与结构 二、实现单链表 三、链表的分类 四、单链表算法题 一、概念与结构 1、节点 结点的组成主要有:当前结点要保存的数据和保存下一个节点的地址(指针变量) 图中指针变量plist保存的是第一个结点的地址,我们称p…

红日靶机(二)笔记

红日靶机二 环境搭建 只需要把虚拟机的 host-only(仅主机)网卡改为 10.10.10.0 网段,如下配置 把 NAT 网卡,改为 192.168.96.0 网段,如下 首先恢复到 v1.3 快照 让后点击放弃,放弃后再开机,用…

论文写作工具推荐小渡ai,MedSci,Open Access Library

1、知网作为写过论文或者即将要写论文的人,这个网站真的真的真的是你用的最多最多的网站。但是你一定不用自己充会员,因为你的学校肯定给你买了这个资料库,从学校图书馆的网页进去就行,或者你校外访问,就算是没有账号不…

【自动驾驶】控制算法(十一)深度解析车辆纵向控制 | 纵向双 PID 控制算法

写在前面: 🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。📝 个人主页:清流君_CSDN博客,期待与您一同探索 移动机器人 领域的无限可能。 🔍 本文系 清流君 原创之作&…

心觉:如何重塑高效学习的潜意识(5)终结篇

Hi,我是心觉,与你一起玩转潜意识、脑波音乐和吸引力法则,轻松掌控自己的人生! 挑战每日一省写作184/1000天 上篇文章讲了如何发挥边学边用的威力及其底层逻辑 到此为止,我们已经系统地把“系统化学习”和“边学边用…

scrapy 爬取微博(五)【最新超详细解析】: 爬取微博文章

1 读取配置参数 爬取微博文章首先需要读取settings.py中的设置的配置变量,然后编写爬虫,读取的配置变量主要有爬取的关键词、时间范围、爬取区域等。 class WeiboSearchSpider(scrapy.Spider):name weibo_searchallowed_domains [weibo.com]settings…

【北京迅为】《STM32MP157开发板嵌入式开发指南》- 第十五章 Linux 文件系统概念

iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器,既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构,主频650M、1G内存、8G存储,核心板采用工业级板对板连接器,高可靠,牢固耐…

Navicat 工具 下载安装

准备工作 下载 下载链接:http://localhost:8080 演示环境 操作系统:windows10 产品:Navicat 版本: 15.0.25 注意:如果需要其他版本可以自行下载。 安装步骤 1、解压(如果解压中出现提示威胁要允许&#…

基于CNN+Transformer混合模型实现交通流量时序预测(PyTorch版)

前言 系列专栏:【深度学习:算法项目实战】✨︎ 涉及医疗健康、财经金融、商业零售、食品饮料、运动健身、交通运输、环境科学、社交媒体以及文本和图像处理等诸多领域,讨论了各种复杂的深度神经网络思想,如卷积神经网络、循环神经网络、生成对…

PHP程序如何实现限制一台电脑登录?

PHP程序如何实现限制一台电脑登录? 可以使用以下几种方法: 1. IP地址限制:在PHP中,可以通过获取客户端的IP地址,然后与允许登录的IP地址列表进行比对。如果客户端的IP地址不在列表中,就禁止登录。 “php $…

洛谷P1789MC生存插火把

洛谷P1789MC生存插火把 这道题有一个小坑&#xff0c;就是火把照亮的地方可能不在数组里&#xff0c;注意要把那一块地方去掉&#xff0c;这道题的出题者把范围都告诉我们了&#xff0c;大大滴降低了这道题的难度 下面是我的代码 #include <stdio.h>int n, m,k ;//一…

HarmonyOS Next系列之水波纹动画特效实现(十三)

系列文章目录 HarmonyOS Next 系列之省市区弹窗选择器实现&#xff08;一&#xff09; HarmonyOS Next 系列之验证码输入组件实现&#xff08;二&#xff09; HarmonyOS Next 系列之底部标签栏TabBar实现&#xff08;三&#xff09; HarmonyOS Next 系列之HTTP请求封装和Token…

基于ssm+vue的在线家用电器销售系统

摘要 本文介绍了一个基于SSM&#xff08;SpringSpring MVCMyBatis&#xff09;框架与Vue.js技术的在线家用电器销售系统。该系统旨在为用户提供便捷的家用电器购买体验&#xff0c;同时为商家提供一个高效的销售管理平台。系统前端采用Vue.js框架开发&#xff0c;实现了响应式布…

【制作自解压程序】使用7Z制作自解压程序

文章目录 1.前言2.准备压缩包3.准备7zSD.sfx文件4.准备config.txt5.合并文件6.完成 1.前言 自解压程序是利用压缩包制作一个类似于下载程序样式的文件&#xff0c;可以让用户直接点击使用&#xff0c;而不是解压以后去文件中找哪个是启动程序。 2.准备压缩包 首先&#xff0…

【U8+】安装用友U8+16.5后,应用服务管理中缺少加密服务。

【问题描述】 安装用友U8+后,应用服务管理中,没有加密服务。 导致软件无法登录到加密服务器。 【解决方法】 此问题多为CPU所影响: 1、深信服和霆智虚拟机需要开启HOST CPU选项。不开启此选项无法发挥CPU的全部功能,对U8和SQL Server的性能影响很大,所以在U8V16.5中要求开…

SOMEIP_ETS_142: SD_Request_non_existing_Major_Version

测试目的&#xff1a; 验证DUT能够拒绝一个请求不存在的主版本号的SubscribeEventgroup消息&#xff0c;并以SubscribeEventgroupNAck作为响应。 描述 本测试用例旨在确保DUT遵循SOME/IP协议&#xff0c;当接收到一个请求不存在主版本号的SubscribeEventgroup消息时&#xf…

828华为云征文|部署个人文档管理系统 Docspell

828华为云征文&#xff5c;部署个人文档管理系统 Docspell 一、Flexus云服务器X实例介绍二、Flexus云服务器X实例配置2.1 重置密码2.2 服务器连接2.3 安全组配置2.4 Docker 环境搭建 三、Flexus云服务器X实例部署 Docspell3.1 Docspell 介绍3.2 Docspell 部署3.3 Docspell 使用…

PostgreSQL的学习心得和知识总结(一百五十二)|transaction_timeout:达到事务超时时终止会话

目录结构 注&#xff1a;提前言明 本文借鉴了以下博主、书籍或网站的内容&#xff0c;其列表如下&#xff1a; 1、参考书籍&#xff1a;《PostgreSQL数据库内核分析》 2、参考书籍&#xff1a;《数据库事务处理的艺术&#xff1a;事务管理与并发控制》 3、PostgreSQL数据库仓库…

影刀---如何进行自动化操作

本文不是广告&#xff0c;没有人给我宣传费&#xff0c;只是单纯的觉得这个软件很好用 感谢大家的多多支持哦 本文 1.基本概念与操作&#xff08;非标准下拉框和上传下载&#xff09;非标准对话框的操作上传对话框、下载的对话框、提示的对话框 2.综合案例3.找不到元素怎么办&a…

从AR眼镜到智能巡检:XR技术的演变与未来潜力

XR&#xff0c;即扩展现实&#xff08;Extended Reality&#xff09;&#xff0c;是一个涵盖了增强现实&#xff08;AR&#xff09;、虚拟现实&#xff08;VR&#xff09;和混合现实&#xff08;MR&#xff09;的广泛概念。 从我们最初接触到的手机应用到Hololens&#xff0c;…