为什么这里有多个线程?

时间:2013-11-12 06:33:48

标签: asp.net webforms

我设置了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));
        }
    }

1 个答案:

答案 0 :(得分:1)

MSDN声明:

  

当ASP.NET响应请求时,作为HTTP管道执行链中的第一个事件发生。

对每个请求,而不是第一个请求。您应该将其视为请求的开头,而不是应用程序本身。例如,对于资源,应用程序当然可能会有很多请求。