gpt4 book ai didi

asp.net - 如何在服务器级别定义错误处理逻辑

转载 作者:行者123 更新时间:2023-12-03 07:55:21 25 4
gpt4 key购买 nike

对于网站/vpath,可以处理 Application_Error 事件以在错误被发送回浏览器之前捕获它们。是否也可以在服务器级别以某种方式执行此操作?也就是说,在根级别定义一个方法,如果网站发生错误,该方法将执行,但该网站无论出于何种原因都无法处理该错误。

我知道您可以在根级别使用 web.config 来定义每个 HTTP 状态代码的自定义错误消息。但是,这对我的情况并不理想,因为我想根据应用程序逻辑返回不同类型的内容(即 HTML 或其他内容)。

最佳答案

可以在 applicationHost.config 中注册自定义 http 模块。然后这个模块被目标机器上的所有 IIS 应用程序使用。

1)创建一个带有http模块的签名类库项目:

public class ErrorHandlingModule : IHttpModule
{
public void Dispose() { }

public void Init(HttpApplication context)
{
context.Error += new EventHandler(context_Error);
}

void context_Error(object sender, EventArgs e)
{
// handle error
}
}

2) Install将类库导入 GAC,因此它可以被所有 IIS 应用程序共享。

3) Install http 模块到 applicationHost.config 文件。该文件通常位于 C:\Windows\System32\inetsrv\config 中。此文件夹中的文件只能被64位进程访问(32位操作系统没有这个问题),VS2010看不到它们,但资源管理器可以。 applicationHost.config 片段可能如下所示:
<location path="" overrideMode="Allow">
<system.webServer>
<modules>
<add name="MyModule" preCondition="managedHandler" type="GlobalErrorHandler.ErrorHandlingModule, GlobalErrorHandler, Version=1.0.0.0, Culture=neutral, PublicKeyToken=bfd166351ed997df" />

关于asp.net - 如何在服务器级别定义错误处理逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9781115/

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