gpt4 book ai didi

asp.net - 事件处理程序只能在 IHttpModule 初始化期间绑定(bind)到 HttpApplication 事件

转载 作者:行者123 更新时间:2023-12-04 14:05:56 26 4
gpt4 key购买 nike

我收到以下错误

“事件处理程序只能在 IHttpModule 初始化期间绑定(bind)到 HttpApplication 事件。”在以下代码处(粗体或双 ** 行)

protected void Application_BeginRequest(object sender, EventArgs e)
{
HttpApplication app = (HttpApplication)sender;
**app.EndRequest += new EventHandler(Application_EndRequest);**
}

protected void Application_EndRequest(object sender, EventArgs e)
{
UnitOfWork.Commit();
}

这在 Global.asax 文件中提到。任何人都可以弄清楚,我缺乏什么?谢谢。

最佳答案

事件处理程序存在于应用程序的整个生命周期中,因此,您只需添加一次,而不是每次请求都添加它。事件本身将触发每个请求,并且每次引发事件时都会调用唯一的处理程序。

将其添加到 global.asax 中的 Application_Start 而不是 Application_BeginRequest ,或者更好的是,创建一个 HTTP 模块。

另外,我认为 您甚至可能不需要事件处理程序 .具有当前名称的方法将按照类似于 Page/Control AutoEventWireup 的约定(如 Page_Load)调用。请注意,正如某些人所报告的那样,这可能在 ASP.NET MVC 应用程序中存在问题。所以,我的建议是重命名函数,在 Application_Start 中添加事件处理程序,或者更好地在您创建的新 HTTP 模块中添加 .

关于asp.net - 事件处理程序只能在 IHttpModule 初始化期间绑定(bind)到 HttpApplication 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5176849/

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