[ASP.net]web.config的customErrors与httpErrors的区别

[ASP.net]web.config的customErrors与httpErrors的区别之前一直知道设置web.config(其实就是xml文件)的customErrors的error来指向自定义的错误页的URL,但是今天在调试的时候发现customErrors无法跳转到自定义的页面,在

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

之前一直知道设置web.config(其实就是xml文件)的customErrors的error来指向自定义的错误页的URL,但是今天在调试的时候发现customErrors无法跳转到自定义的页面,在网上找了半天才了解还有httpErrors可以设置跳转自定义错误页。

web.config文件如下

<?xml version="1.0"?>
<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.5"/>
    <httpRuntime targetFramework="4.5"/>
    <customErrors defaultRedirect="ErrorPages\CustomErr.html" mode="On">
      <error statusCode="403" redirect="ErrorPages\CustomErr403.html"/>
      <error statusCode="404" redirect="ErrorPages\CustomErr404.html"/>
    </customErrors>
  </system.web>
  <system.webServer>
    <httpErrors errorMode="Custom" defaultResponseMode="File">
      <error statusCode="404" subStatusCode="0" path="ErrorPages\HttpErr404.html"/>
    </httpErrors>        
  </system.webServer>
</configuration>

简单来说,存取静态档案(如.js、.html、.css、.jpg…)发生错误会依照httpErrors设定办事;

由.NET处理程序接手的URL(例如:.aspx、.ashx、.svc、MVC注册路由),出错时则看customErrors裡的设定。

http://localhost:2413/Default.aspx    —>正确的url

http://localhost:2413/Default1111.aspx     —>由customErrors控制

http://localhost:2413/Default.aspx1111      —>由httpErrors控制

详细的解释可以访问下面链接

http://blog.csdn.net/a351945755/article/details/21003249

http://blog.darkthread.net/post-2015-11-10-customerrors-and-httperrors.aspx

 原文如下

被抽考IIS網站的自訂HTTP 404錯誤網頁設定,學到新東西也釐清一些觀念,筆記備忘。

以Windows 2008 R2 IIS 7.5為例,網站管理介面有兩處可以自訂錯誤頁面,上方的ASP.NET區的.NET Error Pages與下方IIS區的Error Pages:

<span role="heading" aria-level="2">[ASP.net]web.config的customErrors与httpErrors的区别

兩個設定介面有點不同,試著各自加上HTTP 404設定,但導向不同網頁,.NET Error Pages設定指向/NotFound/SystemWeb404.html:

<span role="heading" aria-level="2">[ASP.net]web.config的customErrors与httpErrors的区别

Error Pages指向/NotFound/SystemWebServer404.html

<span role="heading" aria-level="2">[ASP.net]web.config的customErrors与httpErrors的区别

設定結果會反應在web.config,.NET Error Pages設定被寫入system.web/customErrors,Error Pages則是寫到system.webServer/httpErrors

排版顯示純文字
 
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.web>
        <customErrors mode="On">
    <error statusCode="404" redirect="/NotFound/SystemWeb404.html"/>
        </customErrors>
    </system.web>
    <system.webServer>
        <urlCompression doDynamicCompression="true" />
        <httpErrors>
            <remove statusCode="404" subStatusCode="-1" />
            <error statusCode="404" prefixLanguageFilePath="" 
              path="/NotFound/SystemWebServer404.html" responseMode="ExecuteURL" />
        </httpErrors>
    </system.webServer>
</configuration>

 

這兩個設定有什麼不同呢?簡單來說,存取靜態檔案(如.js、.html、.css、.jpg…)發生錯誤會依照httpErrors設定辦事;由.NET處理程序接手的URL(例如:.aspx、.ashx、.svc、MVC註冊路由),出錯時則看customErrors裡的設定。

以下是簡單示範,輸入不存在的blah.gif看到的是SystemWebServer404.html、輸入不存在的blah.aspx則是SystemWeb.404.html,故得證。

<span role="heading" aria-level="2">[ASP.net]web.config的customErrors与httpErrors的区别

補充一點:httpErrors有個errorMode屬性,預設為DetailedLocalOnly,相當於customErrors mode=”RemoteOnly”,故在本機測試將看不到自訂錯誤頁,要改成Custom才看得到。這是IIS 7起加入的行為,還停在IIS 6的腦袋沒意識到有差異,花了點時間才搞定,特別加記一筆。

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154690.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • drone无人机是什么意思_无人机怎么选择

    drone无人机是什么意思_无人机怎么选择所以看到XTDronehttps://mp.weixin.qq.com/s/yU_xj8bMAASm8cIZnn2iZw看到Dronekit

    2022年8月15日
    4
  • Buck的振铃实验与分析

    Buck的振铃实验与分析上上期我们提到了buck电路的开关的振铃波形,本质原因是LC的阻尼振荡。文章偏理论,那BUCK到底是怎么产生尖峰振荡呢?要想把这个问题搞清楚,也很是不容易,所以文章有点长,请直接点赞转发加收藏。问题本期主要分析以下这两个问题:1、死区时间是什么?这里有个小台阶是什么情况?2、上下尖峰振荡是如何产生的?跟哪些因素有关?理想的BUCK的SW波形我们由浅入深,一步一步来,先看理想的开关SW波形—没有尖峰电压的波形。为了能更好的看buck电路各个点的电压电流情况.

    2022年10月23日
    0
  • 一级域名、二级域名 cookie

    一级域名、二级域名 cookie一级域名、二级域名一级域名是animail.com二级域名是www.animal.com,elephant.animal.com三级域名是small.elephant.animal.com以此类推…cookie在父子域名下的行为在子域名下,可以提交父域名的cookie

    2022年5月21日
    88
  • iptables

    iptables

    2022年3月5日
    41
  • csgo开箱网站可以取回的_csgo官方开箱网站在哪里

    csgo开箱网站可以取回的_csgo官方开箱网站在哪里Incsgo,能取回的开箱网.我们为Incsgo爱好者们倾力打造品质卓越的Incsgo开箱平台,Incsgo抽奖网站,安全可靠,玩法多样。立即注册领取奖金,库存充足,全新箱子,一秒取回。Incsgo官方网站-能够取回的csgo开箱子网站官方链接:www.incsgo.gg注册登录自动免费获得$1.00美金优惠码:csgogo(充值使用csgogo可增加5%充值金额)支付:微信支付宝状态:直接取回…

    2022年9月27日
    0
  • android 置灰不可点击,Android Studio 运行按钮灰色的完美解决方法「建议收藏」

    android 置灰不可点击,Android Studio 运行按钮灰色的完美解决方法「建议收藏」AndroidStudio运行按钮灰色的完美解决方法今天新建项目的时候突然发现编译后运行按钮为灰色。解决方案:第一步:点击图中的AddConfiguration,出来如下界面第二步:点+号,并选择AndroidApp选项出来下图所示界面第三步:在Module中下拉框中选择app如果在Module下拉框没有app这个选项点击搜索框,输入sync,从搜索结果中选择如下项:点击运行…

    2022年8月28日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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