在同一解决方案(Web 应用程序)中使用多个全局错误文件

Using multiple global error files in the same solution (Web Application)

我有一个包含 3 个子文件夹的 Web 应用程序,我想在解决方案中使用它们:

  1. 人力资源
  2. 商业
  3. 金钱

每个都有一个子应用程序,使用母版页、CSS 等解决方案的公共部分。 每个应用程序在各自的文件夹中都有自己的错误页面。

但是顶层文件夹只有 1 个 Global.asax。 我想为每个应用程序在全局级别处理错误,以便在我们浏览每个解决方案的页面时,未知错误总是出现在正确的错误页面上。

例如。 1. /HR/Page1.aspx中的错误转到/HR/ErrorPageForHR.aspx 2. /Business/Page1.aspx中的错误转到/Business/ErrorPageForBusiness.aspx 3. /Money/Page1.aspx中的错误转到/Money/ErrorPageForMoney.aspx

我怎样才能做到这一点? 我可以在每个文件夹或其他方式中制作多个 Global.asax 吗?

一种可行的方法是将错误处理程序的逻辑放入 Class Library 和 Class 中以相应地处理错误。该项目对于 3 个 Web 应用程序共享的常见行为也很有用。然后将该库添加为对每个 Web 应用程序的引用,并在后端的每个 Global.asax 文件中包含 Class Library 项目主命名空间并调用您的 ErrorHandler Class 逻辑。那就是我会做的...

您不能有多个 Global.asax,除非您将文件夹转换为可能有点矫枉过正的区域。

您可以使用 HttpContext.Current.Request 获取请求并将用户重定向到基于 URL 的正确错误页面。

此外,您可以在每个文件夹中放置不同的 web.config 文件,其中包含 404、403 的 customeErrors。