在ASP.NET中,global.asax中有Application_EndRequest事件。然而,在经典ASP中,global.asa
中没有这样的等价事件是否有任何其他内置方式来处理结束请求事件,或以某种方式挂钩到IIS以完成同样的事情?
答案 0 :(得分:5)
我们使用特别扭曲的技术在请求完成后执行代码。请考虑以下代码段:
Class EndRequestHandler
Sub Class_Terminate()
'' Handler code goes here
End Sub
End Class
Set EndRequestHandlerInstance = New EndRequestHandler
当请求结束时,ASP会卸载所有全局变量,包括EndRequestHandlerInstance
,它会调用它的Class_Terminate
方法。如果将其放入网站上每个页面使用的包含文件中,它应该作为您的全局结束请求处理程序。
答案 1 :(得分:1)
在IIS6及更早版本(或IIS7经典管道应用程序池中)中,您真的需要ISAPI过滤器的帮助才能实现与全局End Request操作相同的操作。
在IIS7集成管道中,即使执行的页面是经典ASP,也可以使用.NET End Request代码。
答案 2 :(得分:0)
不是多管闲事,但你想做什么呢?您可能会有不同的解决方案(例如在每个页面的页脚上渲染调试好东西)或根本没有解决方案(例如我希望我可以获取响应缓冲区的内容并在使用之前搞乱它出线)