PRB: Load-Methode fehlschlägt, beim Laden der XML-Datei über HTTP

Problembeschreibung

Wenn Sie die Load -Methode der MSXML verwenden. DOMDocument oder die MSXML2. DOMDocument-Objekt laden eine XML-Datei über HTTP, die Methode fehlschlägt, folgende Fehlermeldung angezeigt:

-2146697209 - sind keine Daten für die angeforderte Ressource verfügbar.

Problemlösung

Verwenden Sie die ServerXMLHTTP-Komponente (eingeführt in MSXML 3.0) zum Laden des Dokuments. -Methode des MSXML2 verwenden. DOMDocument ServerHTTPRequest -Eigenschaft auf True festgelegt. Der Wert True für die ServerHTTPRequest -Eigenschaft gibt an, dass "threadsicher" ServerXMLHTTP Komponente zum Laden des Dokuments verwendet werden soll. ServerXMLHTTP unterstützt nur synchrone laden. Daher muss die Async -Eigenschaft auf False festgelegt werden, wenn ServerHTTPRequest auf True festgelegt ist.

Weitere Informationen

Dieses Problem tritt nicht auf, wenn die Load -Methode auf einen Pfad verweist. Dieses Problem kann auftreten, wenn DOMDocument lädt eine XML-Datei über HTTP, wenn MSXML im eine serverseitige oder clientseitige Multicore-Umgebung ausgeführt wird.

Schritte zum Reproduzieren des Verhaltens

Der folgende VBScript-Code verursacht Fehlermeldung auftreten:
<%Option Explicit%><%Response.Buffer = False%>
<html>
<head>
</head>
<body>

<%
Dim oXML, oXMLError, ReturnValue, x
Set oXML = Server.CreateObject("MSXML2.DOMDocument")
oXML.async = False

ReturnValue = oXML.Load("http://myserver/myxmlfile.xml")
Response.write "Result of load method is =" & ReturnValue & "<br>"
If ReturnValue = False Then
Set oXMLError = oXML.ParseError
Response.Write "&#xa0;&#xa0;" & oXMLError.ErrorCode & " - " & oXMLError.Reason & " URL=" & oXMLError.URL &

"<br>"
Set oXMLError = Nothing
End If

Response.Write oxml.parseError.reason

For x = 0 to oxml.childNodes.length
Response.Write "Node " & x & ". "
Next

Set oXML = Nothing
%>
</body>
</html>

Um die SetProperty -Methode auf True setzen, fügen Sie die folgende Zeile dem vorangehenden Code direkt nach der Zeile: oXML.async = False:
oxml.setProperty "ServerHTTPRequest", true
Für Server, die in einem Intranet ausgeführt werden, erfordert die ServerHTTPRequest -Eigenschaft WinHTTP Proxy Configuration Utility, Proxycfg.exe auszuführen. Diese Einstellung kann nicht durch Control Panel konfigurieren werden.

Derzeit steht Tool "Proxycfg" nur die folgenden Servicepacks oder Software:
  • Windows Server 2003 (alle Editionen)
  • Windows XP Servicepack 1 (SP1)
  • Windows 2000 Service Pack 3 (SP3) oder höher
  • SharePoint Portal Server
Weitere Informationen zum Dienstprogramm Proxycfg.exe ausführen finden Sie in der Readme.txt Datei herunterladen oder Microsoft XML 3.0 SDK. Wenn Sie Proxycfg.exe ausführen, aktualisieren Sie die Registrierung können vorherigen Registrierungseinträge wiederhergestellt werden.

Wenn anonymer Zugriff im virtuellen Verzeichnis darf mit der ASP-Seite, die die XML-Datei geladen wird, stellen Sie sicher, das für den anonymen Zugriff verwendete Konto ein Domänenkonto ist. Standardmäßig wird Microsoft Internet Information Server (IIS) dieses Konto auf einen lokalen Server-Konto wie IUSR_MACHINENAME. Dieses Konto möglicherweise nicht über ausreichende Rechte zum XML-Datei, die auf dem Server befindet.
 
Wenn der IIS-Server nicht Microsoft Internet Explorer 5.01 Service Pack 2 (SP1) oder höher installiert haben, erhalten Sie die Fehlermeldung beim Zugriff auf die ASP-Seite:

Fehler 'ASP 0115
Unerwarteter Fehler
/MyVirtualDirectory/MyASPPage.asp 
In einem externen Objekt ist ein abfangbarer Fehler aufgetreten. Das Skript kann nicht ausgeführt werden.

Referenzen

Microsoft XML 3.0 Software Development Kit
Eigenschaften

Artikelnummer: 281142 – Letzte Überarbeitung: 09.01.2017 – Revision: 1

Feedback