我需要在 response.end 之前关闭连接吗?
Do I need to close connection before response.end?
在经典 asp 中,我在顶部包含文件 open.asp 和 close.asp和每一页的底部。我的代码中某处有 response.end。我需要在 response.end 之前关闭连接还是服务器在 response.end 之后将页面转换为页面末尾?
open.asp的内容:
Set objcon = Server.CreateObject("ADODB.Connection")
objcon.connectionString="DSN=something"
objcon.Open
close.asp的内容:
objcon.close
set objcon=nothing
请注意,我对多连接和内存泄漏没有任何问题。我的确切问题是关于服务器针对 "Response.End"
的行为
Response.End 停止页面的进一步执行。来自 docs:"The remaining contents of the file are not processed." 因此,不,在这种情况下不会清除连接对象。
最好继续创建更细粒度的连接对象,然后 destroy/release 尽快将它们返回到 ADO 连接池,这是管理与数据库的实际连接的地方。重用连接对象会使它更容易受到无法正确清理的影响。
在经典 asp 中,我在顶部包含文件 open.asp 和 close.asp和每一页的底部。我的代码中某处有 response.end。我需要在 response.end 之前关闭连接还是服务器在 response.end 之后将页面转换为页面末尾?
open.asp的内容:
Set objcon = Server.CreateObject("ADODB.Connection")
objcon.connectionString="DSN=something"
objcon.Open
close.asp的内容:
objcon.close
set objcon=nothing
请注意,我对多连接和内存泄漏没有任何问题。我的确切问题是关于服务器针对 "Response.End"
的行为Response.End 停止页面的进一步执行。来自 docs:"The remaining contents of the file are not processed." 因此,不,在这种情况下不会清除连接对象。
最好继续创建更细粒度的连接对象,然后 destroy/release 尽快将它们返回到 ADO 连接池,这是管理与数据库的实际连接的地方。重用连接对象会使它更容易受到无法正确清理的影响。