joh*_* Gu 42 web-config custom-errors asp.net-mvc-3
我想将自定义错误设置为true,以防止用户查看有关我的应用程序的详细信息.但我找不到我应该写的地方<customErrors mode="on">
; 它应该在web.config中还是在web中,debug.config或者在哪里?
BR
Sou*_*ter 90
根据我的经验,我们应该在发布模式下将自定义错误转为On,并在调试时将其关闭.要自动执行此操作,我们可以使用web.config转换,如下例所示.
Web.Debug.config
此设置将允许Web服务器显示包含有用错误信息的ASP.NET黄页.
<customErrors mode="Off" xdt:Transform="Replace" />
Run Code Online (Sandbox Code Playgroud)
Web.Release.config
另一方面,我们不希望用户知道技术错误.我们应该使用自定义错误页面而不是ASP.NET黄页.
<customErrors mode="On" xdt:Transform="Replace" />
Run Code Online (Sandbox Code Playgroud)
这取决于,但通常应该在Web.config文件中.
Web.Debug.config和Web.Release.config(以及其他配置变体)用于部署应用程序时.执行发布操作时,转换将在部署期间应用于Web.config文件,这意味着您可以为已设置的调试,发布和其他配置应用特定的配置设置.
如果在开发期间通常不执行发布操作,则需要将此设置应用于Web.config文件以使其生效.
有关转换Web.config文件的更多详细信息,请参见http://msdn.microsoft.com/en-us/library/dd465318.aspx.
有关将customErrors元素添加到Web.config文件的示例,请参见http://msdn.microsoft.com/en-us/library/h0hfz6fc.aspx.
放入Web.config并创建一个错误页面进行重定向。在MVC中,您具有HandleErrorAttribute,将其标记在类上以处理意外错误,将其记录并抛出错误页面。“自定义错误”是具有已知状态代码的特定错误的默认页面。
<system.web>
<customErrors mode="On">
<error statusCode="404" redirect="/PageNotFound?" />
</customErrors>
</system.web>
Run Code Online (Sandbox Code Playgroud)