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

做网站送给女友意义wordpress 在线教育主题

做网站送给女友意义,wordpress 在线教育主题,做公司网站哪个好,网站点击按钮排序一、使用场景 在传统的ASP.NET MVC中,我们可以使用HandleErrorAttribute特性来具体指定如何处理Action抛出的异常.只要某个Action设置了HandleErrorAttribute特性,那么默认的,当这个Action抛出了异常时MVC将会显示Error视图,该视图位于~/Views/Shared目录下。 自定义错误页面的…一、使用场景   在传统的ASP.NET MVC中,我们可以使用HandleErrorAttribute特性来具体指定如何处理Action抛出的异常.只要某个Action设置了HandleErrorAttribute特性,那么默认的,当这个Action抛出了异常时MVC将会显示Error视图,该视图位于~/Views/Shared目录下。   自定义错误页面的目的就是为了能让程序在出现错误/异常的时候能够有较好的显示体验。有时候在Error视图中也会发生错误,这时ASP.NET/MVC将会显示其默认的错误页面(黄底红字),为了避免这种情况的出现,我们都是在Web.config文件的customErrors节中来自定义错误页面,来启用自定义错误处理   configurationsystem.webcompilation debugtrue /customErrors modeOn defaultRedirectDefaultErrorerror statusCode401 redirectHttp401Error/error statusCode403 redirectHttp403Error/error statusCode404 redirectHttp404Error/error statusCode500 redirectHttp500Error//customErrors/system.web /configuration 二、.NET Core实现   既然想用ASP.NET Core中的中间件模拟Custom Error Page功能那首先我从配置下手。大家都知道.NET Core中配置文件系统发生了很大的变化默认都是采用Json格式的文件进行存储的当然配置文件也可以是其它类型的这里我们就不深入探讨了我们就围绕Json配置文件实现好了 ErrorPages: {401: /Error/Http401Page,403: /Error/Http403Page,404: /Error/Http404Page,500: /Error/Http500Page }   我们在Startup类中定义两个变量用来存储配置文件读取出来的信息如下 public IConfigurationRoot Configuration { get; }internal static IDictionaryint, string ErrorPages { get; } new Dictionaryint, string();   配置文件中定义的ErrorPages节点用于存储我们需要的Http状态编码并包含使用到的错误页面地址, 将他们用Startup类中的ErrorPages变量使用Key/Value的形式读取出来。   接下来我们要从JSON配置文件中读取信息填充到ErrorPages var builder new ConfigurationBuilder().SetBasePath(env.ContentRootPath).AddJsonFile(appsettings.json, optional: true, reloadOnChange: true).AddJsonFile($appsettings.{env.EnvironmentName}.json, optional: true).AddEnvironmentVariables();Configuration builder.Build();foreach (var c in Configuration.GetSection(ErrorPages).GetChildren()) {var key Convert.ToInt32(c.Key);if (!ErrorPages.Keys.Contains(key)){ErrorPages.Add(key, c.Value);} }   现在我们使用今天的主角创建一个ASP.NET Core的Middleware用于实现Custom Error Page功能 public class CustomErrorPagesMiddleware {private readonly RequestDelegate _next;private readonly ILogger _logger;public CustomErrorPagesMiddleware(ILoggerFactory loggerFactory, RequestDelegate next){_next next;_logger loggerFactory.CreateLoggerCustomErrorPagesMiddleware();}public async Task Invoke(HttpContext context){try{await _next(context);}catch (Exception ex){_logger.LogError(0, ex, An unhandled exception has occurred while executing the request);if (context.Response.HasStarted){_logger.LogWarning(The response has already started, the error page middleware will not be executed.);throw;}try{context.Response.Clear();context.Response.StatusCode 500;return;}catch (Exception ex2){_logger.LogError(0, ex2, An exception was thrown attempting to display the error page.);}throw;}finally{var statusCode context.Response.StatusCode;if (Startup.ErrorPages.Keys.Contains(statusCode)){context.Request.Path Startup.ErrorPages[statusCode];await _next(context);}}}   这样就完成了从响应Response的StatusCode到配置的具体页面的跳转。   当然我们最后还要为这个中间件添加一个扩展方法ASP.NET Core中为 IApplictionBuilder创建了好多的扩展方法其实也好比它的名子一样它就应该是一个建造者模式。   扩展方法如下   public static class BuilderExtensions {public static IApplicationBuilder UseCustomErrorPages(this IApplicationBuilder app){return app.UseMiddlewareCustomErrorPagesMiddleware();} }     最后在Startup类中的Configure方法中加入自定义错误的扩展 app.UseCustomErrorPages(); 三、源代码   如果你对文中的代码感兴趣也可以到我的Github上去看下这个例子的源代码https://github.com/maxzhang1985/CustomErrorPages   ------------------分割线--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------   开源推广     YOYOFx一个轻量级用于构建基于 HTTP 的 Web 服务支持.NET Framework 、.NET  CORE、 Mono 平台。   本着学习的态度造了这个轮子也是为了更好的了解各个框架的原理和有点还希望可以和大家多交流 。   GitHubhttps://github.com/maxzhang1985/YOYOFx  Star下 欢迎一起交流。 .NET Core 和 YOYOFx 的交流群 214741894     如果你觉得本文对你有帮助请点击“推荐”谢谢。  转载于:https://www.cnblogs.com/maxzhang1985/p/5974429.html
http://www.zqtcl.cn/news/863900/

相关文章:

  • 江门网页建站模板金富通青岛建设工程有限公司网站
  • 网站后台账户如何做会计分录做传奇开服一条龙网站哪个好
  • 天门市网站建设seo平台建设网站公司
  • php网站怎么做302织梦网站有会员系统怎么做
  • 清远建设局网站安阳吧百度贴吧
  • 做什么软件做网站效率最好网站公司建设都招聘那些职位
  • 缙云建设局网站深圳营销型网站设计
  • 企业网站制作价格成都高端网站建设公司哪家好
  • wordpress+做仿站网站建设费用属于业务宣传费吗
  • 昆明企业网站制作wordpress移动端插件menu
  • 长沙网站设计培训学校南宁建设网站哪里好
  • 提高基层治理效能全国seo搜索排名优化公司
  • 如何建设网站简介WordPress集成tipask
  • 青海网站开发公司建筑公司的愿景怎么写
  • 建设银行集团网站首页优化科技
  • dede 汽车网站网站上的彩票走势图是怎么做的
  • 网站内容营销呼市推广网站
  • 南宁网站建设价格医院有关页面设计模板
  • 城乡住房和城乡建设厅网站湖州公司网站建设
  • h5响应式的网站建站空间哪个好
  • 徐州网站建设与推广公众号开发技术风险
  • 男女做差差事的视频网站自己做一个小程序要多少钱
  • 临沂网站建设哪家好重庆建设招标造价信息网站
  • 筑巢网络官方网站深圳网站开发设计公司排名
  • 镇江市网站制作网页的代码实例
  • 吉林省网站制作公司有哪些唐山设计网站公司
  • 浙江国泰建设集团有限公司网站ps软件下载电脑版免费怎么下载
  • 昆明网站建设价格自力教育
  • 黄冈网站推广软件视频下载孝感做网站xgsh
  • 用jsp做一网站的流程图互联网博客网站