我设置了BugNet项目(http://www.bugnetproject.com/),我想要自定义它。不幸的是,我不太了解asp(我的背景是WinForms,但过去我用asp做了一些有限的工作)。
无论如何,我在下面的方法中设置了一个断点,当我踩到它时,我发现这种方法被称为荒谬(在我未经教育的意见中)的次数。在我看来,当应用程序启动它应该只调用一次。而且要明确的是,它没有完成,然后被再次调用,而是有很多线程在同一时间进行。
我的问题是:对于像这样的项目,这是正常行为吗? Asp.net Web表单项目自然会多次调用此方法,如果不是,我该怎样去弄清楚它为什么一直被调用?
protected void Application_BeginRequest(object sender, EventArgs e)
{
var app = (HttpApplication)sender;
var context = app.Context;
// Attempt to perform first request initialization
Initialization.Init(context);
if (Request.Url.AbsoluteUri.ToLower().Contains("bugdetail.aspx"))
{
Response.Redirect(string.Format("~/Issues/IssueDetail.aspx{0}", Request.Url.Query));
}
}
答案 0 :(得分:1)
MSDN声明:
当ASP.NET响应请求时,作为HTTP管道执行链中的第一个事件发生。
对每个请求,而不是第一个请求。您应该将其视为请求的开头,而不是应用程序本身。例如,对于资源,应用程序当然可能会有很多请求。