web应用程序- Application_EndRequest(对象发送者,EventArgs)在asp.net中被多次



在我的应用程序中,我定义了一个实现ihttpmodule的类,它包含以下方法

  public void Init(HttpApplication application)
    {
        application.EndRequest += new EventHandler(Application_EndRequest);
    }

 private void Application_EndRequest(object sender, EventArgs e)
    {
        HttpApplication application = (HttpApplication)sender;
        HttpContext context = application.Context;

        IObjectContainer objectClient = context.Items[KEY_DB4O_CLIENT] as IObjectContainer;
        if (objectClient != null)
        {
            objectClient.Close();
        }
        objectClient = null;
        context.Items[KEY_DB4O_CLIENT] = null;
    }

当我尝试运行应用程序并调试它时,我注意到一个奇怪的事情:

在chrome私有void Application_EndRequest(对象发送者,EventArgs e)是得到执行3次,当应用程序启动和再次3次,当应用程序结束。

在Internet explorer私有void Application_EndRequest(object sender, EventArgs e)在应用程序启动时被执行2次,在应用程序结束时再次执行2次。

为什么Application_EndRequest被多次执行。它不应该只运行一次吗?

我还想知道Visual Studio Development Web Server和IIS之间的区别?

我和你有什么不同?

请帮帮我

感谢期待

Application_EndRequest()将在运行时处理请求时被调用多少次。对于VSDev服务器,这将是-每个-请求;包括图片和浏览器可能寻找的其他各种资源…如书签图标图像。

这也可以解释浏览器之间的差异;IE和Chrome可能在他们试图请求的额外内容方面存在差异,特别是re:站点图标。

最新更新