最近我们将经典的 asp application+ vb6 com 组件从 W2K3 服务器移到 W2K8 服务器。vb6 组件中所做的唯一更改是从 MSXML 2.0 升级到 MSXML 6.0。这些 vb6 组件被编译成 dll 并在服务器上注册为 COM 组件。我们现在面临的问题是asp页面需要很长时间才能加载。过去需要 8-10 秒的功能现在需要大约 40 秒。我们插入日志,发现vb6代码中所有与MSXML 6.0升级相关的函数都导致应用程序运行缓慢。
在进一步研究中,我们发现使用 64 位版本的 MSXML6.0(存在于 C:\Windows\System32 下)加载 XML 文档的 vb6 模块加载使用 32 位版本的 MSXML6.0 的 xml 文档的时间要长两倍. (存在于 C:\Windows\sysWOW64 下)
Microsoft 已为此提供了一个修补程序。请看下面的网址。 http://support.microsoft.com/kb/2799406 我们已经尝试过这个修补程序,但它并没有解决性能问题。
问题: 1) 在 W2K8 机器上,我们无法使用 C:\Windows\sysWOW64 下的 MSXML6.0。每当我们尝试引用此位置时,它默认引用回 C:\Windows\system32。我们还在记事本中打开了vb项目文件并更改了参考位置并再次打开了项目但没有成功。谁能建议解决此问题的可能解决方案是什么?当前场景:参考=*\G{F5078F18-C551-11D3-89B9-0000F81FE221}#6.0#0#..\WINDOWS\System32\msxml6.dll#Microsoft XML, v6.0
预期场景:参考=*\G{F5078F18-C551-11D3-89B9-0000F81FE221}#6.0#0#..\WINDOWS\sysWOW64\msxml6.dll#Microsoft XML, v6.0
2) 一旦我们通过引用这个 sysWOW64 文件夹将这个 vb6 代码编译为 dll,一旦它在 W2K8 服务器上,如何确保/确认来自 Syswow64 的引用将被拾取?
3)此外,如果您可以建议我们应该针对/考虑解决此性能问题的其他领域是什么?