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

从Application_OnError(ASP.NET MVC)获取正确的Response.StatusCode

从Application_OnError(ASP.NET MVC)获取正确的Response.StatusCode是指在ASP.NET MVC应用程序中,如何在发生错误时获取正确的HTTP状态代码。在这种情况下,可以使用Global.asax文件中的Application_OnError事件处理程序来处理错误。

在Application_OnError事件处理程序中,可以使用HttpContext.Current.Response.StatusCode属性来获取或设置HTTP响应的状态代码。这个状态代码可以帮助客户端了解请求的结果,例如,404表示找不到页面,500表示服务器内部错误等。

以下是一个示例代码,展示了如何在Application_OnError事件处理程序中获取正确的Response.StatusCode:

代码语言:csharp
复制
protected void Application_OnError(object sender, EventArgs e)
{
    Exception exception = Server.GetLastError();
    HttpException httpException = exception as HttpException;

    if (httpException != null)
    {
        int statusCode = httpException.GetHttpCode();
        Response.StatusCode = statusCode;
    }
    else
    {
        Response.StatusCode = 500;
    }
}

在这个示例中,我们首先获取最后一个错误,然后将其转换为HttpException类型。如果转换成功,我们将获取HTTP状态代码并将其设置为响应的状态代码。如果转换失败,我们将状态代码设置为500,表示服务器内部错误。

请注意,在处理错误时,应该考虑到安全性和用户体验。在生产环境中,应该禁用详细的错误消息,以防止敏感信息泄露给攻击者。同时,应该为用户提供友好的错误页面,帮助他们解决问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 详解ASP.NET Core 处理 404 Not Found

    解决方案 在以前ASP.NET MVC版本中,主要在 web.config 中处理404错误。...通配路由 在先前版本MVC,创建一个通配符路由来处理,在.NET Core中,也可以使用相同方式。这个方式是,您有一个通配符路由,它会接收任何其它路由尚未处理URL。...当内部中间件组件返回错误代码(如404)时,UseStatusCodePagesWithReExecute允许您执行另一个控制器Action来处理状态代码。...app.UseMvc(); 中间件定义顺序很重要,您需要确保在可能返回错误代码任何中间件(如MVC中间件)之前注册StatusCodeWithReExecute。...一般来说,这两种技术是在ASP.NET Core中处理非成功HTTP状态代码首选方法。

    1.9K20

    dotnet 用 MVC 方式打开 IPC 命名管道

    ASP.NET Core MVC 层框架是仅提供网络传输方式。...让 ASP.NET Core 走网络方式,替换为走命名管道方式,可以极大提升在用户端稳定性 再次表扬 ASP.NET Core 优秀设计,在 ASP.NET Core 里,各个模块分层明确,这也就让更换...以上例子项目,可以本文末尾获取 如关注此库实现原理,请继续阅读下文 原理 先从客户端方向开始,在客户端里使用 HttpClient 是被注入了使用 IPC 底层框架通讯 IpcNamedPipeClientHandler...尽管 HttpClient 设计上,应该是发起请求时才去连接服务端,但因为这是 IPC 通讯,且为了解决 IPC 初始化逻辑多进程资源竞争,当前版本采用在获取 HttpClient 也就是发起具体请求之间..., httpContext 里获取返回值 response.StatusCode = (HttpStatusCode) httpContext.Response.StatusCode

    96620

    【实战 Ids4】║ 控制台密码模式搭配Ocelot网关

    书接上文,这些天一直在研究IdentityServer4(下文简称Ids4)框架,发现有很多有意思,或者说比我想象中知识点,可扩展多,所以比较开心能钻研进去,就像当时学习ASP.NET Core一样...,越学越感觉有意思,我自认为ASP.NET Core已经学基本出师了,希望Ids4我也能学到出师,毕竟要干一件事就要做好它。...在之前公众号文章中呢,我已经对多个客户端进行了迁移,比如JS模式,MVC模式: 【实战 Ids4】║ 客户端、服务端、授权中心全线打通!...【实战 Ids4】║ 又一个项目迁移完成(MVC) 在我开篇讲中,一共说到了平时开发常见模式有以下几个: 简化模式和授权码模式已经说完了,分别对应了JS客户端和MVC客户端,那今天就说一下第三种密码授权模式...这里肯定没问题,我简单放两个结果图: (获取到了token) (访问资源服务器,返回结果) (为表示正确性,我这里贴出来api确实是加密) 那现在我们控制台密码授权模式已经说完了,那接下来就简单说一下如果使用

    55931

    使用微服务架构思想,设计部署OAuth2.0授权认证框架

    NET开发,一部分又是Java平台开发,两个平台部署环境有很大差异,没法部署在一起;或者虽然同是ASP.NET MVC,但是一个是MVC3,一个是MVC5,所以需要分别独立部署。...IdentityServer 简单登录账号认证 ASP.NET Web API Demo.OAuth2.Mvc 简单登录账号认证,支持登录会话  ASP.NET Web MVC 6 其它 PWMIS.OAuth2...最后,对请求返回响应结果做复杂异常处理,得到正确返回值或者异常结果。...如果是单纯ASP.NET WebForms, ASP.NET MVC3 ,甚至是Java等其它平台资源服务器呢?...下面我们以某个比较老管理系统来举例,它基于 ASP.NET MVC3定制开发,扩展了一些底层东西,所以没法升级到兼容支持ASP.NET WebAPI MVC5。

    10.9K32

    ASP.NET Core错误处理中间件: 呈现错误信息

    ASP.NET Core应用在处理请求过程中出现错误时,我们可以利用它们将原生或者定制错误信息作为响应内容发送给客户端。...[更多关于ASP.NET Core文章请点这里] 一、显示开发者异常页面 如果ASP.NET Core应用在处理某个请求时出现异常,它一般会返回一个状态码为“500 Internal Server Error...这个问题有两种解决方案:一种是利用日志,因为ASP.NET Core应用在进行请求处理时出现任何错误都会被写入日志,所以可以通过注册相应ILoggerProvider对象来获取写入错误日志,如可以注册一个...Startup类型中针对DeveloperExceptionPageMiddleware中间件正确注册方式。...客户端错误:表示因客户端提供不正确请求信息而导致服务器不能正常处理请求,响应状态码范围为400~499。

    1.6K30

    ASP.NET Core应用错误处理:三种呈现错误页面的方式

    由于ASP.NET Core应用是一个同时处理多个请求服务器应用,所以在处理某个请求过程中抛出异常并不会导致整个应用终止。...将日志直接写入宿主应用控制台)到来获取写入错误日志。...DeveloperExceptionPageMiddleware中间件正确注册方式。...对于异常或者错误语义表达在HTTP协议层面主要体现在响应报文状态码上,具体来说HTTP通信错误大体分为如下两种类型: 客户端错误:表示因客户端提供不正确请求信息而导致服务器不能正常处理请求,响应状态码范围在...Core应用错误处理[1]:三种呈现错误页面的方式 ASP.NET Core应用错误处理[2]:DeveloperExceptionPageMiddleware中间件 ASP.NET Core应用错误处理

    1.8K90

    ASP.NET Core 6框架揭秘实例演示:错误页面的N种呈现方式

    由于ASP.NET是一个同时处理多个请求Web应用框架,所以在处理某个请求过程中出现异常并不会导致整个应用中止。...对于生产环境来说,我们也希望最终用户能够根据具体错误类型得到具有针对性并且友好错误消息。ASP.NET提供相应中间件可以帮助我们将定制化错误信息呈现出来。...这个问题有两种解决方案:一种是利用日志,ASP.NET在处理请求过程中出现异常时,会发出相应日志事件,我们可以注册相应ILoggerProvider对象将日志输出到指定渠道。...; [2105]基于响应状态码错误页面的呈现(设置响应内容模板) 我们知道HTTP语义中错误是由响应状态码来表达,涉及错误大体划分为如下两种类型: 客户端错误:表示因客户端提供不正确请求信息而导致服务器不能正常处理请求...({response.StatusCode})"); } 我们针对根路径(“/”)注册终结点会随机返回一个状态码在(400,599)区间内响应。

    73120

    ASP.NET MVC5 ModelBinder

    为了能够正确处理请求,Action参数(如果有的话),必须在Action执行之前,根据相应规则,把请求中所包含数据提取出来并将映射为Action参数值,这个过程就是ModelBinding。...ModelBinding好处 使代码变得更加简洁 帮助我们获取HTTP请求中数据 帮助我们完成必要数据类型转换 ASP.NET MVC中ModelBinding实现过程 ASP.NET MVC中...具体实现过程可以看蒋金楠ASP.NET MVC5框架揭秘》或者看他博客How ASP.NET MVC Works?,讲解很详细。 ?...究竟哪里获取数据,这要依赖于参数描述信息ParameterDescriptor ParameterDescriptor获取需要借助于ControllerDescriptor和ActionDescriptor...参考文章: Model Binders in ASP.NET MVC ModelBinder——ASP.NET MVC Model绑定核心 ASP.NET MVC以ValueProvider为核心值提供系统

    1.4K20

    ASP.NET Web API 应用教程(一) ——数据流使用

    /MVC Error handling IIS ,HTTPS 及Certificate 设计准则及技术 前言 自从ASP.NET MVC 4之后.Net 框架开始支持ASP.NET Web API ,ASP.NET...个人认为使用Web API创建应用需要注意三个关键点: 采用服务及方法满足目标 每个方法输入,如请求 每个方法输出,如响应 通常情况下,Asp.Net Web API 定义method语法与HTTP...Web API框架也提供了一些其他功能来处理路径方面的问题,与MVC 路径处理方法相似。因此可定义不同类型Action方法。 数据流 网络App 最常见执行操作就是获取数据流。...ASP.NET Web API 能够处理客户端与服务器端传输重量级数据流,数据流可来源于目录文件,也可是数据库中二进制文件。...本文主要介绍两种方法“Download”和“Upload”实现数据流相关功能,Download是服务器下载数据操作,而Upload则是上传数据到服务器。

    2.3K80

    初识Asp.Net MVC2.0【续】

    之前写了点Asp.Net MVC概念,没有实际上系统介绍Asp.Net MVC开发方式与WebFrom 开发方式区别。...Asp.Net MVC开发模型 在Asp.Net MVC中“请求——处理——响应”模型变得更加简单和分离很好。...用户请求→IIS→.Net Freamwork→Route【.Net Freamwork 4.0 版本提供Url路由组件】→Controller【控制器:处理用户请求,model中获取数据,并将数据交给...View】→View→视图引擎【将数据装配到视图中,并生成新html】→客户端 如下图所示Asp.Net MVC开发模型: 看一下一个普通Asp.Net MVC项目的项目: 希望这篇简单开发模型介绍能对你学习...也欢迎高手有什么意见或我哪地方说正确进行拍砖让我及时改正。

    37330

    EntityFramework教程整理

    之演化 用ASP.NET MVC自己管理自己View:ASP.NET MVC File Management 使用ASP.NET MVC Futures 中异步Action ASP.NET MVC...中应用 Asp.net MVC各个类说明(Preview 4) 使用MvcContribFormHelper Asp.net Mvc Framework在.net 2.0/IIS6下运行,程序示例...Fckeditor扩展(支持PV3及自动绑定) Asp.net MVC Render及Redirect扩展 以下文章是属于Asp.net MVC preview 2 Asp.net Mvc Framework...中使用) Asp.net Mvc Framework 十二 Castle扩展 Asp.net MVC P2 中无法正确获取 CheckBox值bug解决方案 Asp.net Mvc中MVCContrib...中无法使用Castle发解决方案 我一些ASP.NET MVC开源项目 ASP.NET MVC File Management(文件管理) CHMVCMS(内容管理系统) CHOJ#(在线编译评判

    1.1K60
    领券