gpt4 book ai didi

asp.net - 共享 Global.asax 和 Error.aspx 文件

转载 作者:行者123 更新时间:2023-12-02 10:43:57 24 4
gpt4 key购买 nike

我的解决方案中有多个 ASP.NET 网站以及一个常见的 C# 代码项目。内容如下:

  • 网站1
  • 网站2
  • ...
  • 网站(n)
  • 常见

首先,我想使用 Global.asax 文件来记录所有未处理的异常。我可以为每个网站拥有一个 Global.aspx 文件,但所有代码都是相同的,并且必须保持同一文件的多个副本最新似乎毫无意义。有没有办法将 Global.aspx 文件放在公共(public)库中,然后从每个网站链接到它。我尝试过添加退出项目 > 添加为链接,但页面没有运行它。

其次,所有网站都需要一个错误页面,我可以在其中写入信息(不仅仅是一个简单的 html 页面),因此我有一个 Error.aspx 页面,我想将其与错误详细信息一起重定向到。同样,我可以每个网站都有一个,但它会是同一个页面。有没有办法可以将其存储在公共(public)项目中并链接到它?到目前为止,我能想到的唯一解决方案是建立一个包含错误页面的错误网站。

最佳答案

您可以从基类继承 Global.asax 文件。所以你的 global.asax 可能看起来像这样:

<%@ Application Codebehind="Global.asax.cs" Inherits="MyApplication" Language="C#" %>

然后你的 Global.asax.cs 看起来像这样:

public class MyApplication: BaseApplication 
{
protected void Application_Start()
{
// application specific code... if any
}
}

在您的库中定义:

public class BaseApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
// do your shared code here
base.Application_Start();
}
}

就您的“全局”错误页面而言,我要做的是在每个网站上创建一个处理程序(.ashx)页面,然后创建一个库方法来显示您的错误信息。像这样的东西(Error.ashx)

<%@ WebHandler Language="C#" Class="errorhandler" %>

public class errorhandler: IHttpHandler {

public void ProcessRequest (HttpContext context) {
MyLibrary.ErrorHandler(context);
}
}

注意:为清楚起见,示例中未包含命名空间。

关于asp.net - 共享 Global.asax 和 Error.aspx 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2380660/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com