MVC区域错误处理

use*_*394 6 asp.net-mvc asp.net-mvc-areas

我有一个有3个区域的MVC项目.在主项目中,我使用web.config中的自定义错误设置了错误处理.

<customErrors mode="On" defaultRedirect="~/Error/HttpError">
     <error statusCode="404" redirect="~/Error/Http404" />     </customErrors>
Run Code Online (Sandbox Code Playgroud)

这会导致站点重定向到根目录中的错误控制器,然后显示错误视图.

这在根站点中正常工作,但是当我在其中一个区域站点的主控制器中抛出异常时,它会显示在下面的消息中.

运行时错误说明:服务器上发生应用程序错误.此应用程序的当前自定义错误设置可防止查看应用程序错误的详细信息.

详细信息:要在本地服务器计算机上查看此特定错误消息的详细信息,请在位于当前Web应用程序根目录中的"web.config"配置文件中创建标记.然后,此标记应将其"mode"属性设置为"RemoteOnly".要使详细信息可在远程计算机上查看,请将"mode"设置为"Off".

是否会出现根网站中的错误处理无法在区域网站中使用的情况?

谢谢

约翰.

Dan*_*eny 1

该区域是否有自己的 web.config,可能正在设置自己的错误处理选项?您可以在 Application_OnError 中放置一个断点来查看是否发生另一个错误(例如,加载错误页面 - 例如,如果您关闭了缓冲,它将无法执行重定向)?

您还可以尝试将类似的内容添加到主 web.config 中,看看是否有任何区别:

<location path="nameOfArea">
  <system.web>
    <customErrors mode="On" defaultRedirect="~/Error/HttpError" />
  </system.web>    
</location>
Run Code Online (Sandbox Code Playgroud)