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

网站开发如何让图片加载的更快织梦网站更换域名

网站开发如何让图片加载的更快,织梦网站更换域名,seo是什么意思 职业,5免费建站网站中间件(Middleware)是ASP.NET Core中的一个重要特性。所谓中间件就是嵌入到应用管道中用于处理请求和响应的一段代码。ASP.NET Core Middleware可以分为两种类型#xff1a;Conventional MiddlewareIMiddlewareConventional Middleware这种中间件没有实现特定的接口或者继承特… 中间件(Middleware)是ASP.NET Core中的一个重要特性。所谓中间件就是嵌入到应用管道中用于处理请求和响应的一段代码。ASP.NET Core Middleware可以分为两种类型Conventional MiddlewareIMiddlewareConventional Middleware这种中间件没有实现特定的接口或者继承特定类它更像是Duck Typing (你走起路来像个鸭子, 叫起来像个鸭子, 那么你就是个鸭子)。有两种表现形式匿名方法这种方式又称为内联中间件in-line middleware可以使用Run, Map, Use,MapWhen等扩展方法来实现。如IApplicationBuilder的扩展方法Run、Map、MapWhen及Use(this IApplicationBuilder app, FuncHttpContext, FuncTask, Task middleware)最终都会调用IApplicationBuilder接口中的Use(FuncRequestDelegate, RequestDelegate middleware)方法来实现向请求处理管道中注入中间件后面会对源码做分析。自定义中间件类这种形式利于代码的复用如将自定义中间件配置到请求处理管道中public void Configure(IApplicationBuilder app, IHostingEnvironment env) {app.UseXfhMiddleware(); }IMiddlewareIMiddleware提供了强类型约束的中间件其默认实现是MiddlewareFactory接口定义如下public interface IMiddleware {Task InvokeAsync(HttpContext context, RequestDelegate next); }IMiddlewareFactory用于创建IMiddleware实例及对实例进行回收接口定义将中间件注入到请求处理管道public void Configure(IApplicationBuilder app, IHostingEnvironment env) {app.UseMyMiddleware(); } 使用IMiddleware类型的中间件需要在容器中进行注册否则抛异常具体原因下面分析  将中间件注入到容器中一段警告下面贴一段微软文档中的警告大意是不要试图去改变已发往客户端的响应内容否则可能会引发异常。实在是太懒了不想翻译就把原文贴出来了WarningDont call next.Invoke after the response has been sent to the client. Changes to HttpResponse after the response has started throw an exception. For example, changes such as setting headers and a status code throw an exception. Writing to the response body after calling next:May cause a protocol violation. For example, writing more than the stated Content-Length.May corrupt the body format. For example, writing an HTML footer to a CSS file.HasStarted is a useful hint to indicate if headers have been sent or the body has been written to.UseMiddleware前面将自定义中间件注入到请求处理管道时用到了UseMiddleware方法从方法签名中可以看到UserMiddleware可以接受多个参数接下来我们看下UserMiddleware方法的具体实现由于该方法代码量较大所以这里只看其中的关键部分方法整体流程如下该方法首先判断传入的middleware是否是IMiddleware类型如果是则调用UseMiddlewareInterface从这段代码中可以看到IMiddlewareFactory负责创建并回收IMiddleware对象从MiddlewareFactory的Create方法中可以看到IMiddleware实例是从容器中获取的若容器中找不到则会抛出异常若是Conventional Middleware则判断传入的middleware是否符合约束首先判断传入的middleware中是否仅包含一个名称为Invoke或InvokeAsync的公共实例方法其次判断方法的返回类型是否是Task然后再判断方法的第一个参数是否是HttpContext类型对于Invoke或InvokeAsync仅包含一个HttpContext类型参数的情况用到了反射(ActivatorUtilities.CreateInstance方法中)来构建RequestDelegate对于包含多个参数的情况则使用了表达式树来构建RequestDelegate完整的代码可以在Github上看到。Use(FuncRequestDelegate, RequestDelegate middleware)上述所有中间件最终都会调用IApplicationBuilder接口中的Use(FuncRequestDelegate, RequestDelegate middleware)方法来实现向请求处理管道中注册中间件该方法在ApplicationBuilder类的实现如下从上面代码中可以看到中间件是一个RequestDelegate类型的委托请求处理管道其实是一个委托列表请求委托签名如下public delegate Task RequestDelegate(HttpContext context); 与ASP.NET处理管道的区别   传统的ASP.NET的处理管道是基于事件模型的处理管道有多个IHttpModule和一个IHttpHandler组成。请求处理管道中各个模块被调用的顺序取决于两方面模块所注册事件被触发的先后顺序注册同一事件的不同模块执行先后顺序有Web.config中的配置顺序决定   ASP.NET Core的请求处理管道则是有一堆中间件组成相对ASP.NET更简单。中间件处理请求和响应的顺序只与其在代码中的注册顺序有关处理请求按注册顺序依次执行处理响应按注册顺序反方向依次执行。其次在ASP.NET Core中只需使用代码而无需使用Global.asax和Web.config来配置请求处理管道。小结所谓中间件就是嵌入到应用管道中用于处理请求和响应的一段代码它主要有两个作用处理请求和响应可以阻止请求发往请求处理管道中的下一个中间件在ASP.NET Core中中间件是以RequestDelegate委托的形式体现的。ASP.NET Core中整个请求处理管道的创建是围绕这种IApplicationBuilder接口进行的请求处理管道是一个ListRequestDelegate类型的列表。推荐阅读ASP.NET Core MiddlewareFactory-based middleware activation in ASP.NET CoreMigrate HTTP handlers and modules to ASP.NET Core middlewareASP.NET MVC5请求处理管道和生命周期用ASP.NET Core 2.0 建立规范的 REST API -- 预备知识原文地址:https://www.cnblogs.com/Cwj-XFH/p/9690728.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com
http://www.pierceye.com/news/72540/

相关文章:

  • 门户网站和社交网络的区别网站上的咨询窗口是怎么做的
  • 做论坛网站要多少配置的服务器seo外链自动群发工具
  • 成都哪家公司做网站最好路由器做网站服务器吗
  • 网站qq访客记录原理做家具的网站有哪些
  • 彩票网站定制网站页面布局用什么做
  • 个人域名怎么做网站自己怎么搞个软件出来
  • 做地方特产的网站唯尚广告联盟
  • 网站建设英文字体格式wordpress主题生成工具
  • thinkphp做网站快吗世界500强企业中国有几家
  • 自己做网站如何赚钱吗网站建设开什么名目
  • 中国各大网站排名东莞市建设局门户网站
  • 网站开发培训太原搜索引擎入口官网
  • vc6.0做网站网站被做跳转怎么办
  • 公众号 手机网站开发网站后台登陆密码忘记了
  • 绵阳市建设局官方网站南苑网站建设
  • seo 网站案例佛山网站建设维护
  • 网站开发的特点芜湖炎黄做的网站
  • 龙海网站建设关键词搜索量怎么查
  • 旅游网站建设技术有哪些wordpress重装主题
  • 重庆网站推广入口电子商务网站建设风格
  • 装修接单网大连百度首页优化
  • 安阳网站设计哪家专业简述网页布局的几种方法
  • 南宁网站开发培训学校辽宁工程建设招标网
  • 年轻人常用网站wordpress链接提交谷歌搜索
  • 济南黄河路桥建设集团官方网站网站内容建设需要哪些策略呢
  • 巧克力网站建设需求分析wordpress首页布局修改
  • 网站留言板html代码美食网站建设背景
  • 网站怎么注册啊可做外贸的网站有哪些
  • 怎么在悉尼做网站网页正在跳转中
  • 自己做个网站需要几个软件设计之家微博