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

时间:2016-11-16 23:57:55

标签: c# .net global-asax

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

  1. HR
  2. 商业
  3. 货币
  4. 每个都有一个子应用程序,它使用解决方案的常见部分,如Master Page,CSS等。 每个应用程序在各自的文件夹中都有自己的错误页面。

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

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您不能拥有多个Global.asax,除非您将文件夹转换为可探测范围过大的区域。

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

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