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

学做网站论坛账号服装行业网站模板

学做网站论坛账号,服装行业网站模板,友情链接搜读,蔬菜网站模板这是一个关于 .NET 6 中间件的系列文章。在这个系列中#xff0c;我们将了解到什么是中间件#xff0c;它能够做什么#xff0c;以及我们为什么要使用它#xff0c;并演示几种不同类型的中间件的实现。之后#xff0c;我们会进一步了解中间件所在的管道#xff0c;以及如… 这是一个关于 .NET 6 中间件的系列文章。在这个系列中我们将了解到什么是中间件它能够做什么以及我们为什么要使用它并演示几种不同类型的中间件的实现。之后我们会进一步了解中间件所在的管道以及如何创建它。最后我们再展示两种根据不同条件在管道中执行中间件的方法以便更细粒度地控制应用程序的操作。中间件基础一般情况下任何使用 HTTP 进行的交互都由请求通常来自浏览器和响应组成。浏览器或其他请求者通过提交请求并等待请求目标Web 服务器返回响应。中间件则位于请求者和目标之间因此它可以直接修改响应的内容还可以使用请求中的数据做出其它响应行为。就像这张图ASP.NET 6 实现了一个由一系列中间件组成的管道。请求沿着这个管道向下过滤直到它到达一个中间件创建响应为止。然后响应再逆向通过管道进行过滤直到它到达请求者。每个中间件组件由一个请求委托组成这是 .NET 中的一种特定对象它可以将执行控制传递给下一个对象。每个请求委托都可以选择是否将请求传递给管道中的下一个委托。也就是说根据请求委托处理的结果中间件也有可能不会选择将执行控制权交给下一个委托。中间件的用途中间件的一个常见的场景就是日志记录。中间件可以轻松地将请求包括URL和路由记录到日志系统中以便以后进行分析。中间件也是进行授权和身份验证、诊断、异常记录和处理的好地方。简而言之中间件可以用于那些不是特定于业务领域的逻辑以及需要在每个请求或大多数请求中发生的操作。Program.cs 示例这是 Visual Studio 创建 ASP.NET 6 Web 应用程序时默认生成的 Program.cs 文件并且进行了简单的修改:var builder WebApplication.CreateBuilder(args);// 添加服务 builder.Services.AddRazorPages();var app builder.Build();// 配置 HTTP 请求管道 if (!app.Environment.IsDevelopment()) {app.UseExceptionHandler(/Error);app.UseHsts(); }// 将各种中间件添加到应用程序管道中 app.UseHttpsRedirection(); app.UseStaticFiles();app.UseRouting();app.UseAuthorization();app.MapRazorPages();//最后运行应用 app.Run();这个文件创建了 ASP.NET 6 Web 应用程序处理请求的管道。它还使用 .NET 6 提供的特殊方法向管道中添加了一组「默认」中间件。例如UseStaticFiles()它允许应用程序返回静态文件如 .js 和. css以及UseRouting() 它添加了.NET Routing 来处理 URL 到服务器端点的路由。此外ASP.NET 6 应用程序可以使用很多默认提供的这种“内置”中间件。具体可以查看官方文档。一个简单的自定义中间件让我们创建一个超级简单的中间件它只做一件事返回 “Hello Dear Readers!” 作为响应。在 Program.cs 中我们使用 Run() 方法添加了一个新的中间件如下所示app.Run(async context {await context.Response.WriteAsync(Hello Dear Readers!); });app.UseRouting(); app.UseAuthorization();app.MapRazorPages();app.Run();当我们运行这个应用程序时我们会看到这个非常简单的输出现在我们已经在 ASP.NET 6 中实现了自定义的中间件然而还有一个问题我们之后就会看到。Run()、Use() 和 Map()当我们查看 Program.cs 文件时通常可以通过查看添加到管道的方法来确定应用程序的哪些部分被认为是中间件。最常见的方法是 Run()、Use() 和Map()。Run()Run() 方法会在管道的终点调用一个中间件。因此该中间件将始终是一个终结点也就是响应返回之前执行的最后一个中间件。例如前面示例的代码app.Run(async context {await context.Response.WriteAsync(Hello Dear Readers!);});// 下面的代码都不会被执行 app.UseRouting(); app.UseAuthorization();app.MapRazorPages();app.Run();因为调用了 Run() 所以在该调用之后不会执行任何写入的内容。Use()Use()方法在管道中放置一个中间件并允许该中间件将控制权传递给管道中的下一项。app.Use(async (context, next) {//做一些不修改响应的操作await next.Invoke();//执行日志记录或不写入响应的操作 });注意next参数该参数就是前面提到的请求委托。它表示管道中的下一个中间件不管它是什么。通过等待next.Invoke()我们允许请求继续传递到下一个中间件。另外请注意除非管道在这里停止处理否则在这种中间件中最好不要修改响应。修改已经生成的响应可能会导致响应损坏。大多数时候我们都会使用Use()而不是Run()来添加中间件到管道中。Map()Map()方法允许我们创建具有分支的管道我们可以使用它根据请求路径有条件地调用中间件。app.Map(/branch1, HandleBranchOne);app.Map(/branch2, HandleBranchTwo);app.Run();static void HandleBranchOne(IApplicationBuilder app) {app.Run(async context {await context.Response.WriteAsync(Youre on Branch 1!);}); }static void HandleBranchTwo(IApplicationBuilder app) {app.Run(async context {await context.Response.WriteAsync(Youre on Branch 2!);}); }Map()方法比较特殊我们将在后面的文章中详细讨论。总结中间件是组成管道的代码模块或类。该管道处理传入的请求和传出的响应。在 Program.cs 文件中我们可以按照特定的顺序放置中间件然后它将按照该顺序执行请求并以相反的顺序执行响应。ASP.NET 6 包含了很多内置的中间件其中一些几乎可以在所有的 Web 应用中使用。向应用管道中添加中间件的一种方法是使用Run()、Use()和Map()方法。然而这可能不是最常见的方式我们会在下一篇文章中再详细说明。
http://www.pierceye.com/news/116396/

相关文章:

  • 招聘网站开发源码广州服务类拓客软件
  • 婚庆策划公司加盟江门关键词优化价格
  • 百度网站入口ps网页设计实验报告
  • 做网站准备材料怎么做优化网站排名
  • asp技校网站手游网页版
  • 网站建设合同要交印花税吗烟台网站的建设
  • 可以做锚文本链接的网站广告公司创意广告语
  • 建设网站的题目旅游网页素材
  • 做网站很难吗新手学做网站 pdf
  • 建设电影推荐网站的项目背景网站开发的公司电话
  • 建设银行 福建分行招聘网站cctv5体育现场直播
  • 网站那个做的比较好的微信辅助网站制作
  • 网站设计大全推荐wordpress后台登录
  • 网站运营与数据分析网站开发学习什么
  • 上海网站备案在哪里查询网站建设哪家稳妥
  • 建设网站做什么赚钱网站制作.
  • 小企业公司网站怎么建做网站英文编辑有前途吗
  • 优化图片传网站wordpress背景图片
  • 网站服务器哪家好些外包做网站不付尾款
  • 建站系统wordpress下载哪个公司的微信商城系统
  • 网站建设app开发合同深圳企业网站制作设计方案
  • 免费网站整站模板下载寻找做网站
  • 做此广告的网站做家纺的网站
  • 湖南畅想网站建设个人网站建设基本定位
  • 建站公司外包钓鱼网站怎么做
  • 个人网站logo需要备案吗鑫灵锐做网站多少钱
  • .xyz做网站怎么样网站产品预算
  • 建网站先要申请网址吗做网站给文件不侵权
  • 一元夺宝网站建设Wordpress 普通图片裁剪
  • 网站推广都有哪些自己有网站怎么优化