29. Oktober 2009 16:08
Hallo,
ich würde gerne mit dem NAS-Server auf eine Message Queue ausserhalb einer Domäne zugreifen.
Auf dem Computer außerhalb der Domäne habe ich eine private Message Queue erstellt.
Ich habe sämtliche Paramter für die Funktion OpenReplyQueue des 'Navision MS-Message Queue Bus Adapter" ausprobiert.
Beispiel:
OpenReplyQueue('FormatName:DIRECT=TCP:192.186.0.20\private$\navout',0,0);
Kann mir vielleicht jemand helfen? Kann es sein, dass der MQ-Adapter von Navision diese Funktion garnicht unterstüzt?
Vielen Dank für eure Hilfe.
Gruß Marco
PS: Der Zugriff via C# funktioniert problemlos.
Zuletzt geändert von Wumme am 24. November 2009 12:07, insgesamt 2-mal geändert.
29. Oktober 2009 16:58
Helfen kann ich nur indirekt:
Mit diesem Suchbegiff
Navision MS-Message Queue Bus Adapter MSMQBusAdapter finde ich reichlich treffer zum Thema.
Wenn ich das richtig quergelesen haben muss noch die Automation "'Navision Communication Component version 2'.CommunicationComponent" hinzugefügt werden (mag mich auch irren).
Siehe hier:
Talking with Navision: Say Hello to Navision and Expect Navision to Be PoliteAnsonsten habe ich diese Teffer gefunden:
nav Developer´s Blog - Comcom and the Bus adapterDynamics user group - data exchange with Navision via MSMQDynamicsuser - More Message QueuesVieleicht kommst du damit ein wenig weiter?
29. Oktober 2009 17:27
Hallo Mikka,
erst mal vielen Dank für deine Antwort.
Also Code-technisch hab ich alle Componenten hinzugefügt. Auf einem lokalen Server funktioniert ja alles.
Nur halt nicht, wenn der Server ausserhalb der Domäne steht.
Die Links kenne ich schon alle und hab auch alle genau durchgelesen. Leider konnten ich dort auch keine Lösung finden.
Gruß Marco
29. Oktober 2009 17:37
ich hab zwar ehrlichgesagt keine Ahnung von dieser Programmierung, aber könnte mir vorstellen dass es an der Authentifizierung scheitert, scheinbar greifst du ja auf eine Windows-Freigabe (192.186.0.20\private$\navout) zu.
Daher könntest du versuchen (falls das in deinem Programm nicht möglich ist) die Authentifizierung für den Rechner in Windows selbst zu hinterlegen, und zwar (in XP) über Systemsteuerung -> Benutzerkonten -> Erweitert -> Kennwörter verwalten. Hier müsstest du dann ein auf dem anderen Rechner existierendes und mit den entsprechenden NAV Rechten versehenes Benutzerkonto angeben.
HTH
Gruss
Christian
29. Oktober 2009 18:25
Also ich würde hier ein Rechte-Problem vermuten. Dein C#-Programm läuft doch bestimmt unter einem anderen (vermutlich Admin-) Account als der NAS. Außerdem verwendest Du eine Private-Queue und keine Public. Warum?
30. Oktober 2009 09:08
vsnase hat geschrieben:Also ich würde hier ein Rechte-Problem vermuten. Dein C#-Programm läuft doch bestimmt unter einem anderen (vermutlich Admin-) Account als der NAS. Außerdem verwendest Du eine Private-Queue und keine Public. Warum?
Nas und C# Programm werden vom gleichen Account aufgerufen. Ich habe nun Private und Public-Queue getestet. Ohne Erfolg.
Zusätzlich habe ich den Zugriff via IP-Adresse innerhalb der Domäne ausprobiert. Wenn ich den Servernamen angebe, funktioniert der Zugriff auf die MSQ. Gebe ich die IP-Adresse an, dann funktioniert der Zugriff nicht.
30. Oktober 2009 09:27
Wumme hat geschrieben:Zusätzlich habe ich den Zugriff via IP-Adresse innerhalb der Domäne ausprobiert. Wenn ich den Servernamen angebe, funktioniert der Zugriff auf die MSQ. Gebe ich die IP-Adresse an, dann funktioniert der Zugriff nicht.
Dann würde ich auf ein DNS bzw. AD-Problem schließen. Kann denn die IP-Adresse in den Namen aufgelöst werden? Auch in die GUID des Servers? Vertraut die Zieldomain der Herkunftsdomain? Ich hatte da mal irgendein Toll um das alles zu testen, weiß aber nicht mehr wo. In irgendeiner Win-ServerNewsgroup findet sich da aber bestimmt ein Hinweis.
Volker
30. Oktober 2009 10:14
DNS und Vertrauenstellungen funktionieren perfekt. Namensauflösung funktioniert auch.
24. November 2009 12:06
Lösung:
Der 2. Parameter beim OpenreplyQueue steuert den Zugriff via Name oder IP.
OpenReplyQueue('192.186.0.20\private$\navout',1,0); --> über IP
OpenReplyQueue('SERVER\private$\navout',0,0); --> über DNS-Name
Beim OpenReceiveQueue gilt das gleiche.
Gruß Marco
15. Juli 2011 12:24
Hallo zusammen,
auch wenn der Eintrag bereits etwas "älter" ist, versuche ich nochmal mein Glück, vllt kann mir ja jemand diesbezüglich helfen. Wir haben eine ganz ähnliche Lösung aufgebaut, doch bisher "nur" als Reaktion von Dynamics NAV auf eine Message in einer Queue, in der dann über den NAS eine Antwort eingestellt wird. Nun soll vom System bei verschiedenen Triggern ein XML in die Queue gestellt werden. Dies funktioniert auf dem Server, auf dem die Queue eingerichtet ist, auch einwandfrei, aber von einem lokalen Rechner bekommen wir immer die folgende Fehlermeldung:
---------------------------
Microsoft Dynamics NAV
---------------------------
Diese Meldung ist für C/AL Programmierer:
In Methode OpenWriteQueue wurde eine Ausnahme hervorgerufen. Das OLE Control oder der Automation Server gaben folgende Fehlermeldung zurück (HRESULT) -2147352567.
Die Komponente verfügt über keine Ausnahmebeschreibung.
---------------------------
OK
---------------------------
Wir haben jetzt die verschiedensten Varianten zur Adressierung der Queue versucht, aber irgendwie erfolglos. Wir sind dabei auch schon von privaten auf öffentliche Queues gewechselt, aber vom Server läuft es immer durch und der Client schmeißt einen Fehler. Folgende Versionen sind leider gescheitert:
für private Queues:
MQBus.OpenWriteQueue('interne IP-Adresse\private$\queuename',1,0);
MQBus.OpenWriteQueue('Servername\private$\queuename',0,0);
für öffentliche Queues:
MQBus.OpenWriteQueue('interne IP-Adresse\queuename',1,0);
MQBus.OpenWriteQueue('Servername\queuename',0,0);
Ich habe mich jetzt mal durchs Internet gekämpft und da funktioniert es ja in den unterschiedlichsten Konstellationen. Leider waren alle darin enthaltenen Tricks und Tipps für uns nicht zutreffend. Ich schätze es wird irgendeine Kleinigkeit sein, aber ich komme hier grad nicht weiter und wäre für eure Hilfe sehr dankbar.
Viele Grüße
Nicole
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.