httpErrors


针对IIS7以上的ASP.NET网站自定义错误页面与异常日志总结

自定义错误页面和异常记录是个很古老的话题了,但依旧可以让人爆到现在。在我做了无数次试验并总结经验和原则后,写下本文,已警后人。 本文的范围和限制 本文仅仅适用于部署在IIS7或以上版本中的ASP.NET 4.0集成模式应用程序。IIS7以上的意思是Windows Server 2008以上服务器适用。我已在WS2012R2,IIS8上测过。 本文的方法均适用于ASP.NET WebForm和MVC应用程序。 本文针对的问题 静态错误页面好还是动态错误页面好?我该如何设计ASP.NET网站错误处理? 我不希望错误页面后面跟上aspxerrorpath=…这个小尾巴。 我的自定义错误页面在VS里调试是好的,为什么部署到服务器上就出不来了? 我的自定义错误页面可以正常显示,但为什么返回的Http状态码不正确? 异常日志该怎样记录,有没有比较好的实践? …


ASP.NET自定义错误页的正确方法,返回真正状态码而不是200OK

昨天在码页面的时候手写了一次AJAX,蛋都碎了,顺便发现了一个问题。我在ajax的脚本里检查http的返回状态是不是200OK以此来判断ajax是否执行成功。结果发现网站里所有的404、500页面均返回200OK,我蛋都碎了。用Firebug检查了一下,确实如此。这是自定义错误页的问题。如果用了html静态页作为错误页,比如404.html,通常我们的web.config里会这样写: <httpErrors errorMode="Custom" existingResponse="Replace" defaultResponseMode="ExecuteURL"> <remove statusCode="404" subStatusCode="-1"/> <remove statusCode="500" subStatusCode="-1"/& …