Zum 23.08.2023 ist die NWC Services GmbH zur CANCOM GmbH geworden. Besuchen Sie uns gerne auf www.cancom.de
Toggle Bar

BLOG

BLOGGING CONSULTANTS

NWC Services Blog

Blogs von Consultants der NWC Services GmbH

Fehlermeldung "Die Antwort ist kein wohlgeformter XML-Code" bei PSX

In jüngerer Vergangenheit sind wir von einigen Anwendern unserer PowerShell Extensions für FrontRange DSM (PSX) darauf aufmerksam gemacht worden, dass es beim Absetzen von PSX-Kommandos die fehlschlagen, zu einer kryptischen Fehlermeldung kommt, die nur besagt dass das es sich bei der Antwort um nicht-wohlgeformtes XML handeln würde.

b2ap3_thumbnail_XMLError01.png

Dies ist natürlich wenig aussagekräftig und hilft bei der Ergründung der Fehlerursache nicht weiter.

Im oben dargestellten Fall kann man vielleicht noch selbst darauf kommen, dass es schlicht nicht möglich ist, eine Software-Kategorie unterhalb von "Managed Users & Computers" zu erstellen – in aller Regel wird man jedoch auf die konkrete Fehlermeldung angewiesen sein, um die Ursache des Problems erkennen und beheben zu können.

Das beobachtete Verhalten tritt im Übrigen nur auf, wenn die Umgebung schon auf DSM 2013.2 (oder neuer) aktualisiert wurde.

Die Ursache liegt darin, dass seit DSM 2013.2 der Administration Webservice auf Anfragen komprimiert antworten kann – zumindest wenn der Client das unterstützt. Da die DSM Konsole dies tut (was natürlich gerade in verteilten Umgebungen sehr erwünscht ist), wurde diese Möglichkeit von uns in den PSX Version 2.1.1 ebenfalls implementiert und standardmäßig aktiviert.

Damit der Administration Webservice eine komprimierte Antwort auf eine Anfrage sendet, muss in der Anfrage im Header die Information "Accept-Encoding: gzip" mitgesendet werden. Im Normalfall steckt im Header der Server-Antwort dann die Information auf "Content-Encoding: gzip", sodass .NET-Webclient (der von den PSX verwendet wird) weiß, dass der Inhalt komprimiert ist und vor der Verarbeitung entpackt werden muss.

Im Fehlerfall antwortet der Server jedoch mit komprimiertem XML aber ohne die Referenz auf "Content-Encoding: gzip", was im Soap-Client des .NET-Framework zu einem Problem führt und dieser mit der Fehlermeldung "Die Antwort ist kein wohlgeformter XML-Code" reagiert.

Interessant ist übrigens anzumerken, dass die DSM Konsole dieses Verhalten nicht zeigt. Offensichtlich ist es so, dass die Konsole dann implizit von einer komprimierten Antwort ausgeht (obwohl dies vom Server ja nicht mitgeteilt wurde) und versucht, diese zu dekomprimieren – was dann auch gelingt.

Um nun auch mit den PowerShell Extensions an eine Fehlermeldung zu gelangen, die Hinweise zur Ursache liefert, muss man den Client (also die PSX-Sitzung) so konfigurieren, dass er aus Serversicht keine Dekompression beherrscht. Dann sendet der Server keine komprimierten Antworten und auch eine Fehlermeldung ist dann in dem Format, wie es der Header beschreibt.

Um dies zu erreichen, muss die Eigenschaft EnableDecompression des PSDrive-Objekts auf den Wert $false gesetzt werden. Dies kann mit den im folgenden Screenshot gezeigten Befehlen erreicht werden (unter der Annahme, dass der Name des PowerShell-Laufwerks "emdb" lautet):

b2ap3_thumbnail_DisableDecompression.png

Eine anschließende Anfrage, die in einer SOAP-Fehlermeldung resultiert, liefert dann wieder die ausführliche und aussagekräftige Fehlermeldung des Servers:

b2ap3_thumbnail_SOAPError01.png

×
Stay Informed

When you subscribe to the blog, we will send you an e-mail when there are new updates on the site so you wouldn't miss them.

Pin Icon to Superbar mit Flex+
Hinzufügen von Objekten zu statischen Gruppen beim...

Ähnliche Beiträge

 

Kommentare

Derzeit gibt es keine Kommentare. Schreibe den ersten Kommentar!
Bereits registriert? Hier einloggen
Donnerstag, 21. November 2024

Sicherheitscode (Captcha)