在我的应用程序中,我定义了一个实现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:站点图标。