应用程序发生异常时,给用户一个友好的处理方式,同时将异常记录下来并通知系统管理员或是运维人员是应用的开发的常用场景。web form上微软提供了一个工具包,关于这个工具包参看推荐一个工具包自定义HTTP 404错误。如何在asp.net mvc上实现这样的功能呢?asp.net mvc 在创建项目的时候在Views的Shared目录下有一个错误处理页Error.aspx视图,这个默认的错误处理功能没有实现对错误日志的记录。 捕获所有的服务端异常包括HttpExeptions例如404错误,并且自定义错误处理
由于ASP.NET Core应用是一个同时处理多个请求的服务器应用,所以在处理某个请求过程中抛出的异常并不会导致整个应用的终止。出于安全方面的考量,为了避免敏感信息的外泄,客户端在默认的情况下并不会得到详细的出错信息,这无疑会在开发环境下增加查错纠错的难度。对于生产环境来说,我们也希望最终用户能够根据具体的错误类型得到具有针对性并且友好的错误消息。ASP.NET Core提供了相应的中间件帮助我们将定制化的错误信息呈现出来,这些中间件都定义在“Microsoft.AspNetCore.Diagnostics
在《ASP.NET Core应用的错误处理[1]:三种呈现错误页面的方式》中,我们通过几个简单的实例演示了如何呈现一个错误页面,这些错误页面的呈现分别由三个对应的中间件来完成,接下来我们将对这三个中间件进行详细介绍。在开发环境呈现的异常页面是通过一个类型为DeveloperExceptionPageMiddleware中间件实现的。[本文已经同步到《ASP.NET Core框架揭秘》之中] 1: public class DeveloperExceptionPageMiddleware 2:
ASP.NET MVC的错误处理应考虑到这几个方面:模型绑定期间发生的错误,未能路由到指定操作,针对控制器的错误处理。使用配置文件可以帮助我们处理异常,但是不够灵活和全面;使用HandleErrorAttribute、自定义错误过滤器或重写控制器OnException方法只能解决针对控制器的错误,无法解决模型绑定期间发生的错误,也无法处理404错误,即使将错误过滤器注册为全局过滤器也是如此。有时候需要多种方法配合使用。 在捕获错误的地方,可以将有用的信息记录下来,便于我们查出引起问题的原因和纠正错误。 1启
NuGet包“Microsoft.AspNetCore.Diagnostics”中提供了几个与异常处理相关的中间件。当ASP.NET Core应用在处理请求过程中出现错误时,我们可以利用它们将原生的或者定制的错误信息作为响应内容发送给客户端。在着重介绍这些中间件之前,下面先演示几个简单的实例,从而使读者大致了解这些中间件的作用。[更多关于ASP.NET Core的文章请点这里]
StatusCodePagesMiddleware中间件与ExceptionHandlerMiddleware中间件比较类似,它们都是在后续请求处理过程中“出错”的情况下利用一个错误处理器来完成最终的请求处理与响应的任务。它们之间的差异在于对“错误”的界定上,对于ExceptionHandlerMiddleware中间件来说,它所谓的错误就是抛出异常,但是对于StatusCodePagesMiddleware中间件来说,则将介于400~599之间的响应状态码视为错误。如下面的代码片段所示,StatusCod
基于构件的软件开发是提高软件生产效率和软件产品质量的有效途径,本文结合我们的实践,以“在线学习支持服务平台"项目为例,讨论了基于构件的软件开发的技术的应用。由于我校现有的各级软件系统都是基于微软Windows系列平台,因此我们确定使用微软的COM组件技术来开发该平台,并介绍了该平台所使用的几种COM组件,主要采用VB6语言编写’通用模块并生成DLL文件及注册成为COM程序,客户端用ASP语言来实现并通过ADO技术来调用 SQL SERVER 2000 和 COM 组件。在本项目中的开发过程中,我担任了系统设计工作。
StatusCodePagesMiddleware中间件与ExceptionHandlerMiddleware中间件类似,它们都是在后续请求处理过程中“出错”的情况下利用一个错误处理器来接收针对当前请求的处理。它们之间的差异在于对“错误”的认定上:ExceptionHandlerMiddleware中间件所谓的错误就是抛出异常;StatusCodePagesMiddleware中间件则将400~599的响应状态码视为错误。更多关于ASP.NET Core的文章请点这里]
之前总结到了ASP.NET的七大特点,只总结了2大特点,现继续总结后面的5大特点。 (3)ASP.NET支持多语言 这里说的多语言就是多种开发语言,如C#,VB.NET,无论你采用哪种开发语言,最终的程序代码都会编译为中间代码IL。 IL是所有托管应用程序的基础,托管应用程序是为.NET编写并在CLR托管环境内执行的应用程序,所以可以说IL就是.NET的语言,它是唯一能被CLR识别的语言。 为什么不同的语言编译出来的中间是一样的呢?因为这些语言共享同样的公共基础结构。 反编译工具:C:\Program Fi
在开发过程中,处理错误是一个重要的方面。ASP.NET Core提供了多种方式来处理错误,以确保应用程序的稳定性和可靠性。
最近有个项目使用ASP.NET MVC开发,遇到一个问题,表现为:通过本地(localhost,本地ip)访问一切正常,但是通过远程链接的时候,呈现给浏览器的都是http 500内部服务器错误,通过查看asp.net mvc的源代码发现HandleErrorAttribute.cs的第92行 filterContext.ExceptionHandled = true; filterContext.HttpContext.Response.Clear();
本文介绍了如何使用Global.asax文件来增强ASP.NET Web应用程序的功能。首先,介绍了Global.asax文件的作用和基本功能。接着,详细探讨了在Global.asax中实现定时任务、应用程序级别的错误处理、应用程序启动和结束时执行特定逻辑等功能。随后,进一步讨论了如何利用Global.asax实现应用程序级别的缓存管理、处理会话开始和结束时的逻辑、以及管理应用程序的全局状态。通过本文的介绍,读者可以全面了解Global.asax的应用场景和功能,从而更好地利用ASP.NET技术构建高效、可靠的Web应用程序。
链接:cnblogs.com/xiaoxiaotank/p/15586706.html
前几天的一个安全会议上公布了一个ASP.NET中的安全隐患(在1.0至4.0的版本中均存在),黑客可以使用这个隐患获取到网站的web.config文件(往往保存了一些敏感信息,如数据库连接字符串等)以
2007年上半年,我参加了某市信息办技术服务平台的项目开发,担任系统平台的设计和开发工作,该项目主要为了支持某市党政机关专网的二期建设所开发设计的,它是一个在线式的远程服务平台。在项目的开发过程中,我充分的进行基于构件的软件开发,考虑到软件复用和以后的扩展等方面,文中介绍了构件平台的选择,几种COM构件的开发,平台的实现过程。基于构件的开发大大提高了软件的质量,缩短了开发周期。该项目现在已经完满完成,得到用户的一致好评。但现在看来,在开发过程中也出现了一些不足,文中就构件的划分和使用方面谈了自己的一些看法。
第1章 异常处理 (Exception Handling) 1.1. WCF基本异常处理模式 1.1.1. 当异常从服务端抛出(S101) 1.1.2. 异常细节的传播(S102) 1.1.3. 自定义异常信息 1.2. 错误消息与FaultException异常 1.2.1. 从SOAP Fault说起 1.2.2. 唯一可被传播的异常:FaultException 1.2.3. FaultException异常和错误消息之间的转换 1.3. WCF异常处理体系剖析 1.3.1. FaultFormatt
ASP.NET MVC 4 Beta 新功能特性: (1) ASP.NET Web API (2) 添加移动项目模板 (3) 对移动 app 特性的功能支持,JQuery Moblie,View Switcher and Browser Overriding (4) 提升自定义代码产生器 (5) 增强异步方法,异步产生器提供返回参数支持 Task 实例。 (6) 单页面应用程序的支持 (7) 增强默认模板功能。 (8) 更好的支持 Windows Azure SDK (9) 改进 Razo
The most powerful set of tools available to create your Windows installation experience. Free and Open Source since 2004!
使用了 UpdatePanel 控件的方案是 ASP.NET AJAX 扩展中的重要方案。我们收到了许多关于此控件、UpdateProgress 控件以及二者功能的客户反馈。我们已经通过大量更改改善了部分页面呈现,并支持构建与 UpdatePanel 控件兼容的控件。我们还针对异步回发生命周期实现了丰富的事件模型,使您能够自定义客户端的更新处理。
服务器端包含 (SSI) 用于创建可在多个页面重复使用的函数、页眉、页脚或元素。
DeveloperExceptionPageMiddleware中间件利用呈现出来的错误页面实现抛出异常和当前请求的详细信息以辅助开发人员更好地进行纠错诊断工作,而ExceptionHandlerMiddleware中间件则是面向最终用户的,我们可以利用它来显示一个友好的定制化的错误页面。按照惯例,我们还是先来看看ExceptionHandlerMiddleware的类型定义。 [本文已经同步到《ASP.NET Core框架揭秘》之中] 1: public class ExceptionHandler
在实际的web开发中,经常会遇到以下情况,导致给用不好的体验: a、程序未处理的异常,直接输出显示到用户页面 b、用户访问的资源不存在,直接显示系统默认的404页面 c、其它以下请求错误状态的系统默认页面(403等) 为了给用户友好的体验,在实际项目开发中, 需要对系统会不同的异常定制相应的友好提示页面
ASP.NET5包含若干个新的功能来辅助诊断错误,可以在Startup类中简单的为应用程序错误配置不同的处理程序或者显示关于应用程序的附加信息。 配置错误处理页面 在ASP.NET5中,在Startu
在传统的ASP.NET MVC中,我们可以使用HandleErrorAttribute特性来具体指定如何处理Action抛出的异常.只要某个Action设置了HandleErrorAttribute特性,那么默认的,当这个Action抛出了异常时MVC将会显示Error视图,该视图位于~/Views/Shared目录下。
原帖地址:http://www.cnblogs.com/caviare/archive/2007/09/21/901500.html
AsyncFileUpload控件,就是用来对文件进行异步上传的,示例看这里:http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/AsyncFileUpload/AsyncFileUpload.aspx。有需要异步上传文件的同学要看这里了,具体用法如下:
你是否会迷惑当我们请求一个ASP.NetWeb应用程序以后,它是怎么处理这些请求的,后台是怎么工作的,今天就讲一下Asp.NetCore Web应用程序中的请求处理过程。
一年前写了一篇短文ASP.NET MVC Action Filters,整理了Action Filter方面的资源,本篇文章详细的描述Action Filter。Action Filter作为一个可以应用到Controller Action(或者是整个controller)上的属性(Attribute),改变Action执行的行为,当应用于整个Controller上时,Controller上的所有Action都应用了同样设置的Action。 使用Action Filter 可以处理缓存、 验证和错误处理您的
要访问配置,需要使用 ConfigurationBinder 类,它实现了 IConfigurationBuilder 接口,该接口包括两个重要的方法:
在介绍.NET之前,先回顾一下vb6。众所周知,VB6是开发DNA模型的应用程序的最流行语言。它可以在窗体的VB客户程序和COM组件两个方面大显身手。
ScriptManager 控件管理用于 Microsoft ASP.NET AJAX 页面的客户端脚本。默认情况下,ScriptManager 控件将 Microsoft AJAX 库的脚本与页面注册到一起,这使脚本可以使用类型系统扩展并支持局部页面输出和 Web 服务调用。 在页面中,必须使用 ScriptManager 控件来使下列 Microsoft ASP.NET AJAX 的特性可用:
ASP.NET5 beta8现已上都的NuGet作为一个工具升级到Visual Studio2015!此版本极大地扩展.NET核心对OS X和Linux所支持的范围。您现在可以使用网络,加密和全球化特点的跨平台!本新闻稿也包括ASP.NET5,DNX和Web工具的一些不错的改进。让我们来看看我们如何开始使用ASP.NET5beta8。 新功能 下面是一些在ASP.NET5 beta8新功能的摘要。对于什么是新的完整列表在此版本中,请参阅beta8发行说明。 更改IIS托管模式 我们已经取得了重大更新,以
SqlTransaction类是对SQL Server数据库进行事务处理的类,该类的实例由SqlConnection类实例的BeginTransaction方法创建,表示在该数据库连接实例上开始一个数据库事务,创建SqlTransaction类实例后,在程序中使用该实例的Commit方法提交事务,或者使用该类的Rollback方法回滚事务。
这个函数返回当前系统的负载均值信息(当然 Windows 下不适用),详细文档可以翻阅 PHP的相关文档。文档中有段示例代码,基本上也就能看出它的用途了。
这篇文章主要分享Endpoint 终结点路由的中间件的应用场景及实践案例,不讲述其工作原理,如果需要了解工作原理的同学, 可以点击查看以下两篇解读文章:
今天也不知道写不写的完了,最近闲下来了,却感冒了,早上起来都不会说话了,不过幸亏咱不是靠嘴皮子过活了,哎~~~~窃喜吧 上一篇简单写到UpdatePanel的一些好处和坏处,这一篇呢,就细致的认识一下UpdatePanel这个控件,并合理的使用它 UpdatePanel的一些属性 : RenderMode __Block(默认值):设定UpdatePanel使用DIV来圈出要跟新的区域 __Inline:设定UpdatePanel使用span来。。。。。。 UpdateMode
本篇文章作为中间件单元的开篇文章,通过这篇文章可以了解什么是中间件、内置中间件的使用以及怎么创建自定义中间件。我们先来看一下中间件的角色、目的和重要性。
最近,我获得了一份 DevOps 工作,工作内容主要涉及用 Go 完全从头开始编写一个新的后端系统。此前,我从未在生产环境使用过 Go,从个人项目中有过了解。
最近天气温度时高时低,虽说这是大自然的力量人无法抗拒,不能改变那么我们就做预防工作。今天我将用Rust写一个爬虫程序实现电脑桌面实时更新天气情况,这个是一个底层逻辑,需要多方面配合,不仅要有完善的代码还有爬虫IP试试更新才能保证数据最完整最新。
摘要:Ajax 在 Web 2.0 时代起着非常重要的作用,然而有时因为同源策略(SOP)(俗称:跨域问题(cross domain)) 它的作用会受到限制。在本文中,将学习如何克服合作限制。本文以asmx方式搭建webservice作为测试用后端,给出完整的前后端调用解决方案、范例代码。
如果没有一个外部组件的支持,在ASP中是不能动态创建图形的,不管它是一个图表,一个横幅或仅仅是一个图形计数器。可喜的是,这一点在ASP.NET中改变了。现在,我们只需要使用内置功能,就能够很容易动态创建图形,并向客户端发送具有最佳配置的图形。 用命令行程序创建图形 在讨论一大堆ASP.NET代码之前,我们先执行一个简单的命令行程序做一个测试,然后使用这些源代码作为 ASP.NET 脚本的基础。实际上,两者的区别在于:命令行程序将图形保存在一个文件中,而ASP.NET 脚本将图形直接发送到客户端。 举例的程序做什么呢?按照惯例,我们从众所周知的"Hello World" 程序开始,把这个文本信息输出到一个图形文件中,这个图形的大小要与当前选中的 "Hello World" 文本的字体和字号完全相同。 下面的脚本pagecounter.cs是一个典型的简单命令行程序:如果忽略包围在其周围的必须的类代码,就只剩下程序运行时要调用的主函数了,这也正是生成图形的代码所在处: using System; using System.IO; using System.Drawing; using System.Drawing.Imaging; public class CTestBitmapFunctionality { public static void Main() { Bitmap newBitmap = null; Graphics g = null ; try { Font fontCounter = new Font("Lucida Sans Unicode", 12); // calculate size of the string. newBitmap = new Bitmap(1,1,PixelFormat.Format32bppARGB); g = Graphics.FromImage(newBitmap); SizeF stringSize = g.MeasureString("Hello World", fontCounter); int nWidth = (int)stringSize.Width; int nHeight = (int)stringSize.Height; g.Dispose(); newBitmap.Dispose(); newBitmap = new Bitmap(nWidth,nHeight,PixelFormat.Format32bppARGB); g = Graphics.FromImage(newBitmap); g.FillRectangle(new SolidBrush(Color.White), new Rectangle(0,0,nWidth,nHeight)); g.DrawString("Hello World", fontCounter, new SolidBrush(Color.Black), 0, 0); newBitmap.Save("c://test.png", ImageFormat.PNG); } catch (Exception e) { Console.WriteLine(e.ToString()); } finally { if (null != g) g.Dispose(); if (null != newBitmap) newBitmap.Dispose(); } } } 在任何情况下,执行上面代码后,就会生成下面的图形test.png,它将存放在C驱动器上: 我们来仔细研究一下源代码,看看这个图形是如何创建的。关键一点是生成的图形必须与文本 "Hello World" 的字体和字号相同。因此,首先要计算文本的尺寸,为此我们使用了一个尺寸为1 x 1的虚拟图形。计算结束之后,再废弃这个虚拟图形并生成一个适当尺寸的图形。 源代码中有一点很有趣,这就是 Graphics 对象。要创建一个位图时,用这个对象做什么呢?奥妙在于:这是可以向其中绘图的上下文环境。我们可以在屏幕上、打印机上和内存中使用一个图形上下文环境,准确地说就是一个位图。图形的上下文环境使我们能够在任何设备上进行绘图操作,甚至是在虚拟设备上。 接着,用DrawString将文本 "Hello World"按照规格输出到一个白色背景的矩形(用 FillRectangle创建的)中。图形完成后,将其保存在磁盘上。凡是亲自研究过图形文件格式的人都知道这有多困难,但是使用 GDI+
angular 5 全局错误处理 参考文档: https://angular.io/api/core/ErrorHandler 首先按照文档在客户端项目建立app.error-handler.ts 文件: import { ErrorHandler } from '@angular/core'; export class AppErrorHandler implements ErrorHandler { handleError(error: any): void { console
由于ASP.NET是一个同时处理多个请求的Web应用框架,所以在处理某个请求过程中出现异常并不会导致整个应用的中止。出于安全方面的考量,为了避免敏感信息外泄,客户端在默认情况下并不会得到详细的出错信息,这无疑会在开发过程中增加查错和纠错的难度。对于生产环境来说,我们也希望最终用户能够根据具体的错误类型得到具有针对性并且友好的错误消息。ASP.NET提供的相应的中间件可以帮助我们将定制化的错误信息呈现出来。本文提供的示例演示已经同步到《ASP.NET Core 6框架揭秘-实例演示版》)
通过命名空间来分类,区别不同的代码功能,也是ASP.NET中所有类的完全名称的一部分。
在进入SOA之后,我们的代码从本地方法调用变成了跨机器的通信。任何一个新技术的引入都会为我们解决特定的问题,都会带来一些新的问题。比如网络故障、依赖服务崩溃、超时、服务器内存与CPU等其它问题。正是因为这些问题无法避免,所以我们在进行系统设计、特别是进行分布式系统设计的时候以“Design For Failure”(为失败而设计)为指导原则。把一些边缘场景以及服务之间的调用发生的异常和超时当成一定会发生的情况来预先进行处理。 Design For Failure 1. 一个依赖服务的故障不会严重破坏用户
这即是我们经常听到的面向切面编程AOP(Aspect Oriented Programming)技术,AOP通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。
源码链接: https://github.com/witskeeper/geektime/tree/master/samples/ExceptionDemo
最近在折腾统一认证中心,看到开源项目IdentityServer4.Admin集成了IdentityServer4和管理面板,就直接拿过来用了。在尝试Nginx部署时遇到了诸如虚拟目录映射,请求头超长、基础路径映射有误等问题,简单记录,以供后人参考。
领取专属 10元无门槛券
手把手带您无忧上云