首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何创建一个自定义的`ErrorHandlerMiddleware`方法

所有的.NET应用程序都有可能会产生错误,并且不幸地引发异常,因此在ASP.NET中间件管道中处理这些异常显得非常重要。...这没有听起来那么糟糕:即使没有异常处理中间件,ASP.NET Core也会在其底层架构中捕获该异常,将其记录下来,并向客户端返回一个空白的500响应: ?...同样,在Development环境中,当客户端期望返回JSON时而你返回一个HTML开发人员异常页面,这可能会导致问题!...我还要假设我们的API仅支持JSON。这就避免了我们不必担心XML内容协商等问题。在开发环境中,ProblemDetails响应将包含完整的异常堆栈跟踪,而在生产环境中,它将仅显示一般错误消息。...我着重指出了默认Web API模板配置的问题,尤其是在客户端期望有效JSON的情况下,即使出现错误也是如此。

2.2K10

Asp.net web api 知多少

REST风格的架构包含客户端和服务端。 客户端初始化请求到服务器,服务器负责处理请求并返回响应。 这些请求和响应都是围绕这些资源的表示形式进行传递。 Q2. 解释下REST原则? Ans....WEB API 基于.NET Framework构建REST-ful服务,并支持内容协商(返回客户端需要的格式化的数据,比如json,xml,Atom等)。...WEB API还负责返回特定格式的数据,如JSON,XML或任何其他基于接受请求头中定义的格式;但MVC只能通过JsonResult返回Json格式数据。...您可以在单个项目中混合使用WEB API和MVC控制器来处理高级AJAX请求并以JSON,XML或任何其他格式返回数据,并构建完整的HTTP服务。通常,这将是WEB API自承载。...与ASP.NET MVC不同,WEB API仅能返回数据,返回的数据格式可以为string,json,xml,text等。 Q10.

4.8K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    零基础AJAX入门(含Demo演示源文件)

    对于AJAX的简要概述,笔者也只有一段话: AJAX技术是一种能够将桌面应用程序的体验效果带给Web应用程序的技术。这种体验效果主要就是页面的无刷新数据交换以及页面无刷新改变内容。...注:在某些场合“ASP.NET客户端回调”也被称为“ASP.NET脚本回调(ASP.NET script callbacks)” 通过XmlHttpRequest进行异步通讯时要在客户端通过JavaScript...图二、XML字符编码解码流程图 3.4传递其它非字符串内容 前面说的都是对一些基本数据的传输,但有时候也会遇到一些其它内容要传输,比如文件,图片资源……这是应用AJAX技术时无法避免的,所以有必要简要介绍下...有些情况下即使用了服务器控件,比如asp:DropdownList,在客户端也只是用JS把它当作一个select控件来使用。...五、全文总结 本文只是对AJAX作了一下说简也不简说详也不详的介绍,它会帮初学者解决一些问题,但也不要指望它能解决很多问题,我对它的定位就是“AJAX入门向导”吧。

    1.1K20

    Web API--入门--(一)ASP.NET Web API 2(C#)入门

    Web API模板使用ASP.NET MVC提供API帮助页面。我正在使用本教程的空模板,因为我想显示没有MVC的Web API。一般来说,你不需要知道ASP.NET MVC来使用Web API。...添加模型 一个模型是代表你的应用程序中的数据的对象。ASP.NET Web API可以自动将您的模型序列化为JSON,XML或其他格式,然后将序列化数据写入HTTP响应消息的正文。...只要客户端可以读取序列化格式,就可以反序列化对象。大多数客户端可以解析XML或JSON。此外,客户端可以通过在HTTP请求消息中设置Accept头来指示所需的格式。...在这个例子中,我使用了Microsoft Ajax CDN。您还可以从http://jquery.com/下载它,ASP.NET“Web API”项目模板也包括jQuery。...此请求的响应是单个产品的JSON表示。 运行应用程序 按F5开始调试应用程序。网页应如下所示: ? 2 要通过ID获取产品,请输入ID并单击搜索: ?

    4.3K10

    【21】ASP.NET CoreMVC 中的控制器

    ASP.NET CoreMVC 中的控制器 本文作者:梁桐铭- 微软最有价值专家(Microsoft MVP) 文章会随着版本进行更新,关注我获取最新版本 本文出自《从零开始学 ASP.NET Core...当来自浏览器的请求到达我们的应用程序时,作为 MVC 中的控制器,它会处理传入的 http 请求并响应用户操作。 Controller 类包含一组公共方法。...此映射是由我们应用程序中的路由规则定义完成。 我们将在即将发布的视频中详细讨论 ASP.NET Core MVC 中的路由。 请求到达控制器动作方法。...当控制器拥有所需的模型数据,比如我们正在提供服务或 RESTful API,它就可以简单地返回该模型数据。 Controller 返回 JSON 数据 以下示例返回 JSON 数据。.../xml,则返回 XML 数据。

    1.7K30

    通过避免下列 10 个常见 ASP.NET 缺陷使网站平稳运行

    现在,他们在编写 Web 应用程序,总的来说,他们所做的工作值得表扬。 但是与能力随之而来的还有责任,即使是经验丰富的 ASP.NET 开发人员也难免会出错。...线程池饱和 在执行数据库查询并等待 15 秒或更长时间来获得返回的查询结果时,我经常对看到的实际的 ASP.NET 页数感到非常惊讶。(我也等待了 15 分钟才看到查询结果!)...即使您的应用程序至今运行正常,但是随着您的客户规模的增长,应用程序的负载可能会增加。” 实际上,绝大多数实际的 ASP.NET 应用程序都需要异步页面。请切记这一点!...在 ASP.NET 应用程序中启用 Windows 身份验证时,ASP.NET 会自动为请求的每个 .aspx 页面检查 ACL 并拒绝没有读取文件权限的调用者的请求。...即使是在 ASP.NET 应用程序中,也要警惕 SELECT *! 不要完全信赖它 — 请设置数据库的配置文件! 作为一名顾问,我经常被询问为何应用程序没有按预期执行。

    3.6K80

    配电网WebGIS研究与开发

    在客户端回调中,客户端脚本函数会向ASP.NET网页发送一个请求。该网页运行其正常生命周期的修改版本——初始化页并创建其控件和其他成员,然后调用特别标记的方法。...客户端回调(Client Callback)优点在于回调时发送请求和返回结果的字符串都由开发者自定义和解析,更为灵活和轻便。...所以本方法只适合于传递的数据量比较少层次比较少的微量级别,比如一般传递不多于5组的层次单一的数据,如上例所示,但即使如此,也可以满足一般的开发者的需求了。    ...图2.9 XML字符编码解码流程图 2.5.4 非字符串内容的传递方法     前面说的都是对一些基本数据的传输,但有时候也会遇到一些其它内容要传输,比如文件,图片资源……这是应用AJAX技术时无法避免的...和传输其它数据一样,对XML文件的异步传输出是从客户端的请求开始的,客户端请求XML文件有两种方式:一种是通过xmlHttpRequest去异步请求,另外一种是直接声明一个ActiveXObject然后下载服务器端的

    1K10

    使用 ASP.NET Web API 构建超媒体 Web API

    应用程序状态工作流也应位于服务器端,它确定客户端接下来可以做什么。假定资源中的一个操作仅对指定状态可用,该逻辑是否应驻留在任意可能的 API 客户端?肯定不行。服务器应始终控制可以对资源执行什么操作。...使用这个新方法后,服务器不仅仅返回数据。它返回数据和超媒体项目。超媒体项目为客户端提供了一种方法,使它可以根据服务器应用程序工作流的状态来确定可以在指定时间点执行的操作集合。..."/> 在此示例中,使用标准 HTML 元素表示产品目录,但是我使用了 XHTML,因为这样一来使用任意现有 XML 库分析会容易很多。...此模型允许任意 Web API 通过基于不同因素(如用户权限或客户端要使用的版本)提供新表单来自由演变。 用于 XML 和 JSON 的超媒体?...正因为如此,有人提出了使用链接语义扩展 XML 和 JSON 的新媒体类型建议,它名为超文本应用程序语言 (HAL)。

    2.8K50

    Asp.Net Web API 2第十五课——Model Validation(模型验证)

    假设客户端发送了一个带有下列JSON表示的POST请求: { "Id":4, "Price":2.99, "Weight":5 } 你可以看出,客户端并未包含被标记成required的Name属性。...在应用程序的其它层面可能会需要附加验证(例如,数据层可能会强制外键约束)。 {"Id":4, "Name":"Gizmo"} 此处,客户端并未指定Price或Weight的值。...Price { get; set; } “Over-Posting(过份递交)”:客户端也可能发送比期望还多的数据。...在这种情况下,JSON格式化器会简单地忽略该值(XML格式化器却不同)。若你的模型具有只读属性,Over-posting会产生问题。...CodePlex上最新版的Web API,可以使用HttpError类将验证错误返回给客户端。

    72720

    用ASP.NET Core 2.0 建立规范的 REST API -- 预备知识

    例如: GET http://host/api/authors 200 Ok (返回了authors 和 驱动应用程序的超链接) 介绍ASP.NET Core 略....服务器 ASP.NET Core 服务器的作用是响应客户端发过来的请求, 这些请求会作为HttpContext传递进来....下面就是从客户端发请求到应用程序的流图: ? 其中Kestrel可以作为一个独立进程自行托管, 也可以在IIS里. 但是还是建议使用IIS或Nginx等作为反向代理服务器....中间件 在应用程序请求管道内装配的组件就是中间件, 它们负责处理通过管道的请求和响应....实体绑定 传入的请求会映射到Action方法的参数,可以实原始数据类型也可以是复杂的类型例如Dto(data transfer object)或ViewModel。

    1.7K00

    用ASP.NET Core 2.0 建立规范的 REST API -- 预备知识 + 项目准备

    例如: GET http://host/api/authors 200 Ok (返回了authors 和 驱动应用程序的超链接) 介绍ASP.NET Core 略....服务器 ASP.NET Core 服务器的作用是响应客户端发过来的请求, 这些请求会作为HttpContext传递进来....下面就是从客户端发请求到应用程序的流图: 其中Kestrel可以作为一个独立进程自行托管, 也可以在IIS里. 但是还是建议使用IIS或Nginx等作为反向代理服务器....ASP.NET Core 默认支持从下列方式获得配置: 文件格式(INI, JSON, XML) 命令行参数 环境变量 内存中的.NET对象 未加密的Secret管理存储 加密的用户存储, 例如Azure...用REST的术语来说, 我们把客户端请求服务器返回的对象叫做资源(Resources).

    2.7K72

    WCF,Net remoting,Web service

    即使对于WCF和ASMX而言,虽然两者都使用了SOAP,但基于WCF开发的应用程序,仍然可以直接与ASMX进行交互。...信道,而且它不仅能传输XML格式的SOAP包,也可以传输传统意义上的二进制流,这使得它变得效率更高也更加灵活。...mfr=true 分布式应用程序设计:ASP.NET Web 服务和 .NET Remoting ASP.NET Web 服务偏向于 XML Schema 类型系统,提供具有广泛使用范围的跨平台支持的简单编程模型...另外,客户端每次调用 ASP.NET Web 服务时,都创建一个新的对象以服务于该请求。方法调用完成后,该对象即被破坏。...要维护请求之间的状态,可以使用 ASP.NET 页面使用的相同技术(例如,Session 和 Application 属性包),也可以自己实现自定义的解决方案。

    1.5K50

    Asp.Net Web API(二)

    当然,你也可以创建一个Web API项目,利用 Web API模板,Web API模板使用 ASP.Net MVC提供API的帮助页。...ASP.NET Web API 可以自动序列化你的模型到JSON,XML或一些其它格式,然后把已序列化的数据写入到HTTP响应消息的正文。只要客户端可以读取序列化的数据,那么它同样可以反序列这个对象。...大多数的客户端都可以解析JSON或XML。此外,客户端可以声明它想要通过HTTP请求消息中设置的接收标头的那种格式。        ...我们将添加一个控制器,它即可以返回一个商品的列表数据,也可以通过产品编号返回单个产品信息。        ...在Web API中复杂类型的参数是从请求消息体中反序列化得到的,因此,我们期待客户端发送XML或JSON格式的一个产品对象的序列号表现形式       此实现会工作,但它还很不完整。

    1.9K10

    如何在 ASP.NET MVC 中集成 AngularJS(2)

    压缩可以优化脚本和 CSS 代码,如去除不必要的空格和注释,缩短变量名到一个字符。由于捆绑和压缩降低你的 JavaScript 和 CSS 文件的大小,发送的 HTTP 的字节也会显著降低。...我创建了客户和产品目录的独立包,带着这种想法,当用户请求应用程序的这些源文件时,应以将会动态的加载这些捆绑。...,但在此示例应用程序,我想使用在客户端一侧动态加载的客户和产品,所以我不能用渲染功能来渲染我的一些包,这是挑战的开始。...后来这个 JSON 集被添加到 AngularJS。有一个 JSON 集合中的包的信息是,允许从客户端 AngularJS 应用程序加载服务器端捆绑的最初的方法。...从 Visual Studio 中启动应用程序时,您可能会遇到浏览器缓存的问题。同时也可能会花时间来猜测,你运行的是否是最新版本的 JavaScript 文件。在浏览器中按 F5 可以解决这个问题。

    8.3K100

    ASP.NET 调味品:AJAX

    和 XML)用于您的 Microsoft ASP.NET 应用程序,使其互动性更强、响应更及时。...遗憾的是,在很多情况下,不将所有响应都返回或加载到 JavaScript 要更好。返回操作会使过多的 UI 断开连接,或在客户端上需要过量的数据,这经常导致生成不易读的 JavaScript。...Microsoft ASP.NET 2.0 通过客户端回调功能(英文)引入了独具特色的异步回调,并且最近宣布(英文)代号为“Atlas”的 AJAX 正在实现中。...返回到 Ajax.NET 的自定义类(例如我们正在返回的 ArrayList 所包含的 ForumPost)必须标有 Serializable 属性。...我们的代码很可能会导致执行一些额外的搜索,影响可能会很显著。 AJAX 与您 AJAX 如何以及哪里适合您的应用程序,以及是否已经存在要根据情况而定。

    3.7K50

    IIS 7.0探索用于 Windows Vista 的 Web 服务器和更多内容

    通过它,可以启动和停止站点、回收应用程序池、列出正在运行的工作进程、检查当前正在执行的请求以及搜索失败事件请求缓冲 (FREB) 跟踪日志。...它还使您可以轻松访问有关服务器的运行库状态信息,例如,正在运行的工作进程或当前正在执行的请求。...此外,由于运行库限制,即使对于 ASP.NET 资源,也无法在 ASP.NET 中实现某些 Web 服务器功能。例如,它不能检查传出 HTTP 响应标头集并在发送到客户端之前修改它们。...像以前一样,还可以为不同的错误代码配置自定义错误页,或重定向到自定义 URL。详细的错误页现在也已本地化,如果安装了相应语言的语言包,就可以按客户端的首选语言提供错误描述。...此特性为在服务器上重复利用对高成本动态页面的响应提供了支持,从而缓解了对执行高成本的显示处理和数据库事务以便将响应返回客户端的需要。

    5.1K90
    领券