为HttpStatusCodeResult添加customErrors

为HttpStatusCodeResult添加customErrorsasp.netmvc的action返回值为HttpStatusCodeResult时的customErrors总是不起作用的解决办法

大家好,又见面了,我是你们的朋友全栈君。

asp.net mvc的action返回值为HttpStatusCodeResult时的customErrors总是不起作用

(404和exception时的500,由于他们并非HttpStatusCodeResult类型的返回值,所以还能使用)

其解决办法如下:

1. 开启customErrors(为了保留原有的404、500等错误)

2. 开启httpErrors(为专门定制的statuscode)

3. 设置Global:Response.TrySkipIisCustomErrors = true;

  <system.web>
    <customErrors mode="On" defaultRedirect="~/Home/Error">
      <error statusCode="404" redirect="~/Home/Error/404" />
      <error statusCode="500" redirect="~/Home/Error/500" />
    </customErrors>
  </system.web>
  <system.webServer>
    <httpErrors errorMode="Custom" existingResponse="Auto" defaultResponseMode="ExecuteURL">
      <error statusCode="420" path="/Home/Error/420" responseMode="ExecuteURL" />
    </httpErrors>
  </system.webServer>

 

protected void Application_Error(object sender, EventArgs e)
{

    Response.TrySkipIisCustomErrors = true;

    Exception exc = Server.GetLastError();
    if (exc is HttpUnhandledException)
    {
        Server.Transfer("Home/Error/500", true);
    }
}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/160217.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • GitHub 热榜:轻量级无 Agent 的自动化运维平台!「建议收藏」

    GitHub 热榜:轻量级无 Agent 的自动化运维平台!「建议收藏」大家好,我是JackTian。作为一名运维工程师,大家都知道。早在几年前,偏传统运维,以cacti、nagios为主流,到后来的zabbix、Prometheus、Open-Falcon等,也是现在大多数企业用的偏多的运维监控平台。甚至有些企业,都是自主研发。不管是自主研发还是用开源的,其最终目的都是为了提高日常运维工作效率。那么,今天杰哥给大家推荐一款GitHub热榜开源运维平台——spug。这款开源运维平台是:面向中小型企业设计的轻量级无Agent的自动化运维平台,其主要功能

  • Swift编程语言的相关资料

    Swift编程语言的相关资料

    2021年11月29日
  • Tracert(traceroute)&Ping 工作原理分析

    Tracert(traceroute)&Ping 工作原理分析一、tracert工作过程分析Tracert命令用IP生存时间(TTL)字段和ICMP错误消息来确定从一个主机到网络上其他主机的路由。首先,tracert送出一个TTL是1的IP数据包到目的地,当路径上的第一个路由器收到这个数据包时,它将TTL减1。此时,TTL变为0,所以该路由器会将此数据包丢掉,并送回一个「ICMPtimeexceeded」消息(

  • scrapy框架中ROBOTSTXT_OBEY = True的说明

    scrapy框架中ROBOTSTXT_OBEY = True的说明在scrapy中创建项目以后,在settings文件中有这样的一条默认开启的语句:#Obeyrobots.txtrulesROBOTSTXT_OBEY=True默认为True,就是要遵守robots.txt的规则,那么robots.txt是个啥?通俗来说,robots.txt是遵循Robot协议的一个文件,它保存在网站的服务器中,它的作用是,告诉搜索引擎爬虫,本网站哪些目…

  • 关于尺度空间的理解和认识_尺度空间理论

    关于尺度空间的理解和认识_尺度空间理论通常会听到尺度变化等这类词语,看到的也总是一堆的数学公式,有时候真的不知道这到底有啥用,有啥意义,没有弄懂这些意义,当然就更不可能的理解,不可能去掌握应用它了,现在我才理解,小波变化其实也是一种尺度变化。今天我看到一篇南航数学系写的关于尺度空间解释的文章,感觉很通俗易懂,我们不从数学上来推倒什么是尺度空间,只是从生活常识方面来解释尺度空间的意义,意义懂了,数学方面自然就好理解了。       

    2022年10月11日
  • JavaScript刷新当前页面的五种方式

    JavaScript刷新当前页面的五种方式转自:原文地址js刷新当前页面的5种方式1、reload:reload方法,该方法强迫浏览器刷新当前页面。语法:location.reload([bForceGet])   参数:bForceGet,可选参数,默认为false,从客户端缓存里取当前页。true,则以GET方式,从服务端取最新的页面,相当于客户端点击F5("刷新")reload()方法用于重…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号