我需要在response.end之前关闭连接吗?
问题描述:
在经典的asp中我有文件open.asp和close.asp包括在每个页面的顶部和底部。某处我在我的代码中有response.end。我是否需要在response.end之前关闭连接,或者在response.end之后服务器是否将页面翻译为页面末尾? open.asp的我需要在response.end之前关闭连接吗?
内容:
Set objcon = Server.CreateObject("ADODB.Connection")
objcon.connectionString="DSN=something"
objcon.Open
内容close.asp的:
objcon.close
set objcon=nothing
请注意,我有多个连接和内存泄漏没有问题。我确切的问题是关于服务器对“Response.End”的行为。
答
Response.End停止进一步执行页面。从docs:“该文件的其余内容未处理。”所以,不,在这种情况下连接对象不会被清理干净。
最好先继续创建更细粒度级别的连接对象,然后尽快销毁/释放连接对象回ADO连接池,这是管理数据库的实际连接。重新使用连接对象会使其更容易被无法正确清理。
是的。你做。否则你可能最终会发生内存泄漏。 –
那么,在调用Response.End之前,您可以调用Server.Execute(“close.asp”) –
[使用Server.CreateObject(“ADODB.Connection”)](http:// * .com/questions/7896241/connection-leaks-in-classic-asp-using-server-createobjectadodb-connection) – Lankymart