【问题标题】:Using multiple global error files in the same solution (Web Application)在同一解决方案中使用多个全局错误文件(Web 应用程序)
【发布时间】:2016-11-16 23:57:54
【问题描述】:

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

  1. 人力资源
  2. 商务

每个都有一个子应用程序,它使用解决方案的公共部分,如母版页、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 吗?

【问题讨论】:

    标签: c# .net global-asax


    【解决方案1】:

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

    【讨论】:

    • 这听起来不错,我也可以在其他项目中使用。类库可以记录错误并将我重定向到正确的错误页面。
    【解决方案2】:

    您不能拥有多个 Global.asax,除非您将文件夹转换为“区域”,这有点过分了。

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

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

    【讨论】:

    • 太酷了,我可以使用 HTTP 请求 (HttpContext.Current.Request) 找出出错的子应用程序,并使用上面的类方法使其可重用:-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-16
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多