在哪里以及如何为我的asp.net MVC 3 Web应用程序定义<customErrors mode ="on">

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)

  • 也许应该指出 `&lt;customErrors` 节点需要以某种形式存在于 web 配置中,以便为 `xdt:Transform="Replace"`d - 如果 web 中没有 `&lt;customErrors` 节点.config,然后将这些行添加到 web.Release.config 不会导致添加节点。如果 web.config 根本没有 `&lt;customErrors` 节点并且您希望转换添加它,请使用 ``xdt:Transform="Insert"`` (2认同)

dev*_*tal 7

这取决于,但通常应该在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.

  • 将<customErrors>元素放在<system.web>标记下.您还需要将defaultRedirect指定为控制器操作,或者最好是静态html文件.或者,许多人已关闭自定义错误,然后在应用程序错误处理程序中处理路由.有关详细信息,请参阅http://stackoverflow.com/questions/6733064/how-do-i-display-custom-error-pages-in-asp-net-mvc-3. (2认同)

toa*_*nnm 5

放入Web.config并创建一个错误页面进行重定向。在MVC中,您具有HandleErrorAttribute,将其标记在类上以处理意外错误,将其记录并抛出错误页面。“自定义错误”是具有已知状态代码的特定错误的默认页面。

<system.web>
    <customErrors mode="On">
      <error statusCode="404" redirect="/PageNotFound?" />
    </customErrors>
</system.web>
Run Code Online (Sandbox Code Playgroud)