Iis 在ASP类中处理结束请求事件

Iis 在ASP类中处理结束请求事件,iis,asp-classic,Iis,Asp Classic,在ASP.NET中,global.asax中有应用程序_EndRequest事件。但是,在经典ASP中,global.asa中没有类似的事件 是否有其他内置方式来处理结束请求事件,或以某种方式连接到IIS以完成相同的任务?我们使用一种特别扭曲的技术在请求完成后执行代码。考虑下面的片段: Class EndRequestHandler Sub Class_Terminate() '' Handler code goes here End Sub End Class

在ASP.NET中,global.asax中有应用程序_EndRequest事件。但是,在经典ASP中,global.asa中没有类似的事件


是否有其他内置方式来处理结束请求事件,或以某种方式连接到IIS以完成相同的任务?

我们使用一种特别扭曲的技术在请求完成后执行代码。考虑下面的片段:

Class EndRequestHandler
    Sub Class_Terminate()
        '' Handler code goes here
    End Sub
End Class

Set EndRequestHandlerInstance = New EndRequestHandler
当请求结束时,ASP卸载所有全局变量,包括调用其
Class\u Terminate
方法的
EndRequestHandlerInstance
。如果您将其放入站点上每个页面都使用的包含文件中,它应该充当您的全局最终请求处理程序。

在IIS6和旧版本(或IIS7经典管道应用程序池)上,您确实需要借助ISAPI过滤器来实现与全局最终请求操作相同的功能


在IIS7集成管道中,即使执行的页面是经典的ASP,您也可以使用.NET结束请求代码。

不爱管闲事,但您想做什么?可能有不同的解决方案满足您的需要(例如在每个页面的页脚处呈现调试效果),或者根本没有解决方案(例如我希望在将响应缓冲区分配到网络之前,可以获取响应缓冲区的内容并将其弄乱)

此技术可能有用的唯一场景是,您希望将“结束请求”处理引入到当前在ASP include中共享的一组现有ASP页面中。此代码可以放在include中。就我个人而言,在脚本拆卸过程中运行的类中,我会感到不舒服。为什么你会感到不舒服?否则这个方法听起来很理想。我正在尝试修复内存泄漏。在涉及的对象终止之前,需要清理一个循环引用。此外,EndRequest事件是放置其他此类清理代码的好地方。