Mar*_*nox 5 object asp-classic
一方面,总是关闭对象的建议非常普遍,以至于忽略它都是愚蠢的(例如VBScript Out Of Memory Error)。
但是,忽略埃里克·利珀特(Eric Lippert)的智慧也同样愚蠢,后者似乎不同意:http : //blogs.msdn.com/b/ericlippert/archive/2004/04/28/when-are-you-required-to -set-objects-to-nothing.aspx
我已经尝试修复经典ASP中出现OOM错误的许多Web应用程序。我的第一个(耗时的)任务始终是在代码中搜索未关闭的对象,以及未设置为空的对象。
但是我从来没有100%相信这会有所帮助。(也就是说,我发现很难确切地说明有什么帮助...)
Eric 的这篇文章讨论的是独立的 VBScript 文件,而不是用 VBScript 编写的经典 ASP。查看评论,然后是埃里克自己的评论:
回复:ASP——非常好的一点,但我没有考虑过。在 ASP 中,有时很难知道您在哪里以及您在什么范围内。
因此,我可以说他写的所有内容都与经典 ASP 无关,即您应该始终将所有内容设置为 Nothing。
至于内存问题,我认为将对象(或数组)分配给像Session或Application这样的全局范围是造成此类问题的主要原因。这是我要查找和重写的第一件事,以便在会话中仅保存单个标识符,然后使用数据库来管理数据。