在Classic asp中,我可以在Session对象中存储数据库连接吗?

时间:2008-09-18 04:43:32

标签: session asp-classic database-connection

我可以在Session对象中存储数据库连接吗?

5 个答案:

答案 0 :(得分:5)

通常不建议这样做,Application变量中的连接字符串,带有一个好的辅助函数/类是一个非常优选的方法。 这里是一些参考。 (删除了死链接,因为它现在导致了一个网络钓鱼网站)

答案 1 :(得分:2)

我似乎记得这样做会产生单线程应用程序的效果,这将是一件坏事。

答案 2 :(得分:2)

通常,我不会在Application变量中存储任何对象(当然也不会存储在会话变量中)。

说到数据库连接,这是一个明确的禁忌;此外,绝对没有必要。

如果您使用ADO与数据库通信,如果您使用相同的连接字符串(是的,无论如何,将存储在Application变量中)所有数据库连接,“连接池”将在幕后实现。这意味着当你释放一个连接时,它实际上并没有被破坏 - 它被放在一边为下一个想要相同连接的人。因此,下次您请求相同的连接时,它将被“现成”,而不是必须明确创建和实例化 - 这是一个非常好的效率改进。

答案 3 :(得分:1)

从此链接http://support.microsoft.com/default.aspx/kb/243543

你不应该在Session中存储数据库连接。

据我所知,如果你这样做,那么对同一用户的后续ASP请求必须使用相同的线程。

因此,如果您有一个繁忙的网站,那么“您的”主题可能已被其他人使用,因此您必须等待它变为可用。

通过更多用户来增加这一点,你会让每个人都在等待所有人的线程和响应速度不高的网站。

答案 4 :(得分:-2)

正如CJM所说,不需要在Session对象中存储连接:连接池更好。