使用vbscript的Asp网站在不同服务器上的功能不同

时间:2009-11-26 17:02:06

标签: xml xslt asp-classic vbscript

我目前正在尝试将网站从一个服务器移动到另一个服务器,其中一个asp页面包含一些看起来像这样的vb脚本:

    Dim oSearch 'AS Object 
    Dim strXML 'AS String 
    Dim strXSL 'AS String
    Dim oRS 'AS ADODB.RecordSet

    Set oSearch = Server.CreateObject("ETHERNET_PL.CETHERNET_PL")
    strXSL = Server.MapPath("EthernetSearch.xsl")
    strXML = oSearch.ServeSearch(strXSL,1,1000,0)

    Set oSearch= Nothing 
    Set oRS=Nothing

    Response.Write strXML

我对这项技术的了解非常有限,但我可以说“ETHERNET_PL.CETHERNET_PL”是两台服务器上的组件服务,确实有一种名为ServeSearch的方法。此外,两个服务器上都存在EthernetSearch.xsl文件。唯一的问题是,当我尝试访问该页面时,在新服务器上收到以下错误:

msxml3.dll错误'8000000a'

尚未提供完成此操作所需的数据。

/EthernetSearch.asp,第63行

第63行是:

strXML = oSearch.ServeSearch(strXSL,1,1000,0)

有人知道这两个页面在两个不同的服务器上运行的原因是什么?

提前致谢

2 个答案:

答案 0 :(得分:1)

似乎Microsoft XML没有找到数据。问题可能出在系统的许多方面。我会开始看:

  • 机器上ETHERNET_PL.CETHERNET_PL应用程序的配置文件 - 如果它有自己的配置 - 比较它们。这可能会说明它如何使用MSXML。如果您有权访问此组件,请单独使用它来了解其用法并自行调试(如果可以的话)。

然后“常规”检查就像......

  • 文件系统,XML数据文件的NTFS权限,网站上的
  • 确保所有已安装的软件版本相同(IIS,MSXML,ETHERNET_PL,VBScript和其他任何版本)
  • 检查跨机器的IIS设置 - 例如是在调试模式下运行的一台服务器上的Web应用程序,但不是其他服务器?等
  • 已列出的任何软件的Windows注册表权限 - 如果存储了任何设置(Windows注册表在其节点上有自己的一组ACL权限)。运行regedit.exe

同样 Google your error message 。过滤这些结果需要花费大量时间,但是如果其他人遇到问题则可能会使用较旧的技术,答案将是在线或过多的建议,与上面列出的不同。很有可能以这种方式解决它。

如果您需要,请在干净的机器上或虚拟机内重新设置所有内容,然后开始在出现问题的有问题的机器上回溯您的步骤 - 这很费时但可能会让您查看详细信息你不会这样。

答案 1 :(得分:1)

网上有一些论坛讨论表明这个错误可能是因为MSXML没有足够快地加载数据(或者加载数据时超时),这会在尝试使用它时导致错误例如http://forums.devx.com/archive/index.php/t-100302.html

由于此错误来自ETHERNET_PL.CETHERNET_PL组件,因此这是内部使用MSXML的问题

你说两个服务器上都存在XML文件,但它是同一个文件,服务器上的文件是否会使错误显着增大,加载时间可能会成为一个问题?