经典ASP msxml3.dll错误-2146697211

时间:2014-07-18 20:14:43

标签: vbscript asp-classic

当尝试从经典ASP(非.NET)应用程序调用Web服务时,我收到系统错误,我认为与运行Web应用程序无法访问服务器的服务器有关网络服务正在运行。

我们正在将我们的网络服务迁移到新服务器,而我的应用程序可以很好地访问旧服务器。这就是我认为到达新服务器的问题。

当我从Err对象中提取错误编号和描述时,我得到:

Err.Number = -2146697211
Err.Description = System error: -2146697211
Err.Source = msxml3.dll

有没有一种可靠的方法来确定这个错误究竟意味着什么?我不是ASP的专家,所以我不知道很多错误的含义。如果您需要更多信息,请告诉我。

2 个答案:

答案 0 :(得分:0)

这些是定义的错误。

DHtmled.h:#define DE_E_RESOURCE_NOT_FOUND        0x800C0005
pstore.h:#define PST_E_TYPE_NO_EXISTS            _HRESULT_TYPEDEF_(0x800C0005L)
UrlMon.h:#define INET_E_RESOURCE_NOT_FOUND        _HRESULT_TYPEDEF_(0x800C0005L)

他们似乎都是互联网不存在的东西。

请在此处查看我的帖子,了解如何解码错误Unknown email code from CDO.Message send method(并且有一个新段落不在下面转载的页面上)

解码0x8019nnnn错误

设施0x19的HResults是HTTP错误。 16,384(0x4000)下的代码与HTTP错误相同,例如HTTP状态404:服务器上不存在请求的URL是0x80190194(0x194 = 404)。代码16,384及更高版本是特定于BITS的。

答案 1 :(得分:0)

这使用xml lib。如果您实际连接到服务器,这也会获得服务器响应。

网址必须100%正确。与浏览器不同,没有代码可以修复网址。

我的程序的目的是获取错误详细信息。

我如何获得正确的网址是在浏览器中输入我的网址,导航,并且正确的网址通常位于地址栏中。另一种方法是使用链接等的属性来获取URL。

Microsoft.XMLHTTP也映射到Microsoft.XMLHTTP.1.0。 HKEY_CLASSES_ROOT \ Msxml2.XMLHTTP映射到Msxml2.XMLHTTP.3.0。再试一次

使用xmlhttp尝试这种方式。编辑网址等。如果它似乎工作注释if / end if转储信息,即使看起来工作。它的vbscript但vbscript在vb6中工作。

 On Error Resume Next
 Set File = WScript.CreateObject("Microsoft.XMLHTTP")
 File.Open "GET", "http://www.microsoft.com/en-au/default.aspx", False
 'This is IE 8 headers
 File.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30618; .NET4.0C; .NET4.0E; BCD2000; BCD2000)"
 File.Send
 If err.number <> 0 then 
    line =""
    Line  = Line &  vbcrlf & "" 
    Line  = Line &  vbcrlf & "Error getting file" 
    Line  = Line &  vbcrlf & "==================" 
    Line  = Line &  vbcrlf & "" 
    Line  = Line &  vbcrlf & "Error " & err.number & "(0x" & hex(err.number) & ") " & err.description 
    Line  = Line &  vbcrlf & "Source " & err.source 
    Line  = Line &  vbcrlf & "" 
    Line  = Line &  vbcrlf & "HTTP Error " & File.Status & " " & File.StatusText
    Line  = Line &  vbcrlf &  File.getAllResponseHeaders
    wscript.echo Line
    Err.clear
    wscript.quit
 End If

On Error Goto 0

 Set BS = CreateObject("ADODB.Stream")
 BS.type = 1
 BS.open
 BS.Write File.ResponseBody
 BS.SaveToFile "c:\users\test.txt", 2

同时查看这些其他对象是否有效。

C:\Users>reg query hkcr /f xmlhttp

HKEY_CLASSES_ROOT\Microsoft.XMLHTTP
HKEY_CLASSES_ROOT\Microsoft.XMLHTTP.1.0
HKEY_CLASSES_ROOT\Msxml2.ServerXMLHTTP
HKEY_CLASSES_ROOT\Msxml2.ServerXMLHTTP.3.0
HKEY_CLASSES_ROOT\Msxml2.ServerXMLHTTP.4.0
HKEY_CLASSES_ROOT\Msxml2.ServerXMLHTTP.5.0
HKEY_CLASSES_ROOT\Msxml2.ServerXMLHTTP.6.0
HKEY_CLASSES_ROOT\Msxml2.XMLHTTP
HKEY_CLASSES_ROOT\Msxml2.XMLHTTP.3.0
HKEY_CLASSES_ROOT\Msxml2.XMLHTTP.4.0
HKEY_CLASSES_ROOT\Msxml2.XMLHTTP.5.0
HKEY_CLASSES_ROOT\Msxml2.XMLHTTP.6.0
End of search: 12 match(es) found.

另请注意,在发生锁定之前,您可以调用任何特定XMLHTTP对象的次数有限制。如果发生这种情况,并且在调试代码时会发生这种情况,只需更改为其他xmlhttp对象

即可