打开IIS,我们发现会有两个处理错误页的地方,见下图:
进行不同的设置之后,我们发现设定结果会反应在web.config:
.NET Error Pages设定被写入system.web/customErrors,
Error Pages则是写到system.webServer/httpErrors:
结论:
简单来说,存取静态档案(如.js、.html、.css、.jpg…)发生错误会依照httpErrors设定办事;
由.NET处理程序接手的URL(例如:.aspx、.ashx、.svc、MVC注册路由),出错时则看customErrors裡的设定。
参看:http://blog.darkthread.net/post-2015-11-10-customerrors-and-httperrors.aspx