为什么使用MSXML6.0的经典asp + vb6组件应用程序在W2K8服务器上比W2K3服务器慢?

时间:2014-11-21 05:40:37

标签: asp-classic vb6 msxml6 system32 syswow64

最近我们将经典的asp应用程序+ 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位版本的xml doc MSXML6.0。 (出现在C:\ Windows \ sysWOW64下)

Microsoft已为此提供了一个修补程序。请看下面的网址。 http://support.microsoft.com/kb/2799406 我们已经尝试过此修补程序,但它没有解决性能问题。

问题: 1)在W2K8机器上,我们无法使用C:\ Windows \ sysWOW64下的MSXML6.0。每当我们尝试引用此位置时,它默认引用回C:\ Windows \ system32。我们还在记事本中打开了vb项目文件,并更改了参考位置并再次打开了Project,但没有成功。任何人都可以建议解决此问题的可能解决方案是什么? 目前的情景: 参考= * \ 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)另外,如果您可以建议我们应该针对/解决这个性能问题的其他领域?

0 个答案:

没有答案