从经典ASP调用的DLL的地址空间

时间:2010-01-02 15:14:35

标签: dll asp-classic vb6

我的应用程序包含一个从ASP调用的VB6 DLL。它需要管理与(非标准)数据库的连接池。我通过使用全局变量实现了这一点,但由于ASP设置导致应用程序崩溃,因此每20分钟重置一次。

ASP中的DLL都是在自​​己的地址空间中创建的previous poster said,因此全局变量解决方案完全不可行,因为每个页面访问都有自己的“全局变量”。

这不符合我的观察,即在DLL达到其空闲超时之前,全局变量似乎存在。

我们哪个是对的?我可以在DLL全局变量上假设什么范围?

1 个答案:

答案 0 :(得分:1)

每个请求都会获得自己的全局变量副本的想法是 False

但是强烈建议您编译VB6 dll以在asp作为单元线程使用并使用retain in memory设置。

每个线程都会获得自己的全局变量副本。因此,如果这些请求在不同的线程上运行,则多个请求不一定会看到相同的全局变量。

在观察IIS6时,我注意到在测试情况下,很少有多个请求同时运行,同一个线程被用于后续请求。我怀疑这可能是你认为你有一组全局变量的原因。在生产中,情况并非如此。