我有一个项目,其中用 VB6 编写的 ActiveX DLL 正在调用 C++ DLL。ActiveX DLL 通过 IIS 7 通过 ASP“CreateObject”调用加载。
当只有一个 Web 用户访问该站点时,一切都运行良好(经过数千次迭代测试)。一旦 2 个或更多并发用户访问该站点,1 个或多个用户会话就会崩溃(通常会出现 500 错误)?
我怀疑这可能是由于 C++ DLL 不是正确的线程安全的,所以我使用全局互斥锁重写了它以限制访问。这没有效果。
老实说,因为 VB6 ActiveX DLL 的每个实例都在单线程单元中运行,所以我本来希望这不是问题?
任何人都可以阐明这里可能发生的事情吗?我怀疑我真的不明白当 IIS 加载多个 VB6 ActiveX DLL 实例时会发生什么。