[GELÖST] REST-Api Automationfehler

22. Januar 2015 17:49

Hallo zusammen,

mal wieder sucht der Verzweifelte Azubi Hilfe bei den Profis :lol:
Leider Gottes dokter ich schon seit Wochen daran rum und verliere bald den letzten Nerv.

Mein Problem ist folgendes:

Ich greife per RDP auf ein Kundensystem zu. Hier stehen mir 2 RDPs ingesamt zur Verfügung: Die Live-Maschine und die Test-Maschine.
Beide Maschinen können ohne Probleme auf die Live-Datenbank unseres Kunden zugreifen (auf beiden ist der NAV 2009 R2 Classic - Build 6.00.32012 - in Nutzung).

Innerhalb der Live-Datenbank habe ich eine Schnittstelle per XML/HTTP zu einer REST-API programmiert.
Hatte bei Verbindungen zur Test-API bisher auf beiden Maschinen geklappt. Die Verbindung klappt (immer aus der Live-DB aufgerufen) nur von der Test-Maschine ausgehend.
Wenn ich exakt den selben Code mit den selben Parametern in der Live-DB aber ausgehend von der Live-Maschine aufrufe erhalte ich folgenden Fehler:
"Der Aufruf zum Member send ist fehlgeschlagen. msxml3.dll gab die folgende Meldung zurück: Zugriff verweigert"

Ich habe die Automationserver auch schon von Microsoft XML, v3.0 bis Microsoft XML, v6.0 durchgeswitcht.
Die Klassen von ServerXMLHTTP bis zu XMLHTTP60.

Leider sind meine Coding-Fähigkeiten bis dato leider schwer auf Navision begrenzt und wie ich z.B. die DLL debuggen könnte weiß ich überhaupt nicht.
Ich glaube aber ausschließen zu können dass die DLL selbst als Datei für mich nicht zugreifbar ist, da die selbe Programmierung für die Test-API des Anbieters klappt.

Somit nochmal in Kurzform:

Die Test-Maschine kann mit der Live-DB auf die Live-API zugreifen.
Die Live-Maschine kann mit der Live-DB nicht auf die Live-API zugreifen.

Der Code ist folgender:
Code:
Setup.GET;

CLEAR(HTTP);
CREATE(HTTP);

HTTP.open('GET','https:\\myapiurl.de','',MyAPIUserName,MyAPIUserPassword);

CLEAR(XMLInput);
CREATE(XMLInput);

HTTP.send(); //Zeile in der der Fehler auftritt

XMLInput.load(HTTP.responseXML);
IF HTTP.status <> 200 THEN
ERROR(FORMAT(HTTP.status)+' '+HTTP.statusText);
CLEAR(HTTP);


Somit frage ich euch: Hat wer einen Denkansatz wodurch der Unterschied zu Stande kommen könnte? Ich verzweifle gerade :cry:

Viele Grüße
SIPA aka Paul

//EDIT: Beide Maschinen konnten vorher die Test-API erreichen die per HTTP zu erreichen war. Die Unterschiede tauchen erst bei der Live-API mit HTTPS auf.
Zuletzt geändert von Sipa am 9. April 2015 15:00, insgesamt 1-mal geändert.

Re: REST-Api Automationfehler

10. Februar 2015 16:49

Hat niemand mehr einen Ansatz für mich? :S
Verzweifle noch immer an dem Mist...

Re: REST-Api Automationfehler

10. Februar 2015 17:23

Ich würde den Grund eher in den Sicherheitsrichtlinien des Servers oder ggf. den (Windows!) Berechtigungen des aktuellen Benutzers sehen, oder?

Re: REST-Api Automationfehler

11. Februar 2015 09:50

Es sieht schwer danach aus, nur habe ich leider keine Ahnung wo das tatsächliche Problem dann liegen könnte.
Hatte meine Vermutung auch schon gegenüber der internen IT des Kunden erwähnt, jedoch sind die überzeugt die seien sauber und wir haben leider keinen Zugriff auf die Rechte/Richtlinien.

Re: REST-Api Automationfehler

25. Februar 2015 12:42

Hallo,

leider etwas spät aber ...

Versuch doch einfach mal, auf dem Live-Server über den Internet Explorer per Javascript auf den Rest Service zuzugreifen.

Liegt es an generellen Restriktionen des Servers, wird das auch nicht funktionieren ;)

Re: REST-Api Automationfehler

25. Februar 2015 15:34

Hallo,

leider kenne ich mich mit Java mal gar nicht aus, jedoch ist die API so gestrickt, dass man die Response-XML auch im Browser erhält wenn man die URL direkt im Browser eingibt.
Dies klappt auch auf dem Live-Server.

Somit meine Frage: Meinst du das macht einen Unterschied zu Java-Script oder wäre das damit "gleichzusetzen"?

VG
Sipa

[GELÖST] Re: REST-Api Automationfehler

9. April 2015 15:00

Lösung war folgendes:

Die XML-DLL auf die ServerXML-Version umstellen und die URL nicht mit "https://...." sondern "http://..." angeben.
Danach kam die Kommunikation zu stande.

Haben aber bis jetzt leider keinen Ansatz ob es ein DLL oder API-Fehler ist. Hier war irgendwo der Wurm in einer Adressauflösung.

Re: [GELÖST] REST-Api Automationfehler

6. Juni 2018 14:40

Was ist bzw. wo befindet sich die XML-DLL und wo sehe ich die ServerXML-Version?

Re: [GELÖST] REST-Api Automationfehler

6. Juni 2018 14:50

Die findest du in "Microsoft XML":

Name DataType Subtype
XMLHTTP Automation 'Microsoft XML, v6.0'.ServerXMLHTTP60
XMLHTTP Automation 'Microsoft XML, v6.0'.XMLHTTP60

VG
SIPA

Re: [GELÖST] REST-Api Automationfehler

6. Juni 2018 16:54

Danke SIPA für die schnelle Antwort, aber ich stehe auf dem Schlauch.

Wo ist "Microsoft XML" zu finden? In der Registry?

Re: [GELÖST] REST-Api Automationfehler

6. Juni 2018 17:01

Kein Problem - hatte noch für den Thread den Notifier aktiv.

Soweit ich weiß ist Microsoft XML immer installiert, es kann aber auch gedownloaded werden:
https://www.microsoft.com/de-de/downloa ... px?id=3988

Danach müsste die DLL innerhalb eines NAV Objektes als Variable vom Typ "Automation" definiert werden.

Dafür kann man beim Erstellen der Variable unter "Subtype" in die Liste der "Automation Server" schauen.
Hier müsste dann "Microsoft XML, v <Version>" wählbar sein. Dann noch unter "Classes" entweder "ServerXMLHTTP<Version>" oder "XMLHTTP<Version>" wählen und man hat die Variable fertig.

Hoffe das hilft :)

Re: [GELÖST] REST-Api Automationfehler

8. Juni 2018 18:12

Danke für die Erläuterungen. Auf dem Entwicklungsserver funktioniert es, auf dem Testserver nicht. Ich werde das nochmal vom Programmierer prüfen lassen.
HG
Mirko