为什么在刷新浏览器时Application_BeginRequest()会触发两次?

Kur*_*ler 6 asp.net

我在Global.asax文件中(在ASP.NET MVC应用程序中)使用Application_BeginRequest事件观察到一些非常令人困惑的行为.当通过调试器运行时,如果我刷新浏览器(IE7),此事件将触发两次.如果我单击链接或以其他方式手动请求页面,它会触发一次 - 如预期的那样.

为什么刷新导致BeginRequest触发两次?

我正在通过一个全新的MVC项目来观察这一点,其中以下内容被加入到Global.asax.cs中

protected void Application_BeginRequest() { 
    //executed twice
}
Run Code Online (Sandbox Code Playgroud)

对于上下文,我试图在此事件期间向HttpContext.Current.Items集合添加一个新对象,因此它将在整个请求过程中持续存在.显然,我不希望这次刷新请求发生两次!

chr*_*166 8

你确定它对同一个网址真的有2个请求吗?我认为第二个可能是一些动态的JS,CSS或图像文件.尝试找出Fiddler或在调试器中查看HttpContext.Current.Request.Uri