[gelöst] Debuggen im NAS

15. April 2008 11:47

Hallo,

habe folgendes Problem beim Verwenden des NAS:

der Code der bei mir vom NAS angetriggert wird stößt unter anderem auch Buchungscodeunits an. Diesen Code kann ich ebenso manuell anstossen und dann funktioniert er auch. Sobald ich ihn aber über NAS anstoße wird der Code nicht vollständig ausgeführt und bleibt wohl irgendwo in den Buchungsroutinen hängen.

Seltsam ist, das dieses Verhalten nur bei NAV 3.70 und NAV 5.0 auftritt.
In NAV 4.0 wird der Code auch über NAS richtig ausgeführt.

Dialoge und Messages habe ich bereits auskommentiert bzw. mit der Funktion GUIALLOWED für den NAS ausgeblendet.

Hat jemand von Euch schon mal den NAS Debugger verwendet?

Laut Doku kann man ihn wie folgt über die Konsole starten:
nas debug,startupparameter=“test”,servername=PC0123
Der Befehl wir auch ohne Fehlermedung ausgeführt, aber wie verwendet man den Debugger nun?

Vielen Dank für Eure Tipps und Hinweise,

Blue
Zuletzt geändert von BlueInTheSky am 17. April 2008 13:31, insgesamt 3-mal geändert.

15. April 2008 13:48

Hi,

vor dem Debuggen musst du den NAS Service stoppen. Dann mit der cmd Console zum NAS Verzeichnis wechseln und dort folgenden Aufruf starten.
Code:
NAS <V5.00
nas debug, startupparameter=schedule, servername=TEST260TEST, company="TEST DB"   

NAS V5.00
nas debug, startupparameter="JOBQUEUE", servername="TEST500TEST", company="BUS Development", nettype="tcp"   


Dann sollte der Debugger aufgehen und du kannst dann mit F8 beispielsweise in Einzelschritten durchspringen.

Wenn du den NAS dann stoppen willst, zum CMD Fenster wechseln, ESC druecken und dann im Debugger mit F5 ohne Breakpoints ans Ende spingen.

Gruesse
feri

16. April 2008 09:13

Hallo feri,

danke für Deine Antwort.

Probiere das gerade in NAV 3.70 aus und kann den Befehl

nas debug, startupparameter=..., servername=..., company="..."

auch starten. Die Konsole bringt dann die Meldung: "The Navision Application Server AppServer started with the following configuration:
Database Server Name = ...
Database =
Company = ...
Startup Parameter = ...

Ich sehe aber keinen Debugger der startet. Wie komme ich dann in den Debugger rein?

Der Startup-Parameter stößt in der CU1 eine CU an, die sich dann jede Sekunde selbst anstößt. Es sollte nach Start des NAS also auf jeden Fall etwas passieren, auch wenn es u.U. nur Prüfungen sind.
Aufgefallen ist mir das in der Meldung auf der Konsole hinter Database=
nichts steht, selbst wenn ich die Database explizit als Parameter mit übergebe. Ob das etwas bedeutet weiß ich nicht. Im Grunde ist die Database auf die der Database Server zugreift ja im NAS Manager hinterlegt.

Gruß, Blue

16. April 2008 09:22

Ist der Debugger überhaupt aktiviert bzw. sind Breakpoints gesetzt?

16. April 2008 09:33

ja, die Häkchen unter Extras\Debugger "Active" und "Breakpoints on Triggers" sind gesetzt und einen Breakpoint habe ich auch gesetzt

16. April 2008 09:39

Hi,

wenn ich den NAS so starte, dann geht der Debugger automatisch auf. Da muss ich sonst nichts aktivieren oder einstellen?!

Bekommst du im cmd Fenster einen Fehler?

Gruesse
feri

16. April 2008 09:43

nein, es kommt nur diese Meldung, das der NAS gestartet ist (siehe oben), keine Fehlermeldung, hmm, seltsam

16. April 2008 11:31

Starte die CodeUnits anstatt mit dem NAS doch einfach mit dem normalen Client. Dann kann man auch den Debugger ganz normal verwenden.
Debuggen mit NAS ist zu mühsam.

Gruss

16. April 2008 11:44

martinst: das Problem tritt leider nur dann auf, wenn ich über den NAS die Codeunit anstosse, wenn ich Sie manuell starte funktioniert alles einwandfrei. die dialoge und messages habe ich schon rausgenommen, da der NAS an solchen stellen ja abbricht.

16. April 2008 11:55

Das Debuggen mit dem NAS klappt nur mit einer Entwicklerlizenz im NAS-Ordner die fin.flf heißen muss.

16. April 2008 12:04

Mr. Burns: das war das Problem, jetzt klappt es :-)

Vielen Dank Euch allen nochmal !

Gruß,
Blue

16. April 2008 17:19

Hallo nochmal,

habe mich etwas zu früh gefreut, habe des NAS-Debugger zwar unter NAV 3.70 nun gestartet bekommen, wenn ich aber versuche ihn unter NAV 5.0 (auf einem anderen Rechner) mit folgendem Befehl mit cmd zu starten

C:\Programme\Microsoft Dynamics NAV\Application Server>nas debug,startupparameter="JOBQUEUE,...",servername="...",company="...",nettype="tcp"

bekomme ich folgende Fehlermeldung "The combination of user ID and password entered is invalid. Try again."
Wenn ich den NAS über den Application Server Manager bzw. die Dienste starte läßt er sich ohne Probleme starten. Also ist das dort hinterlegte Login (Username,Passwort) wohl ok.
Mit welchem Login logt sich der NAS den ein, wenn ich ihn wie oben über cmd starte? Login-Parameter kann man dem obigen Befehl doch gar nicht mitgeben, oder?
Hat jemand eine Idee woran es klemmt?

Gruß, Blue

16. April 2008 17:44

Hm, in der KB-Search steht auch nichts darüber ...

Wenn du das unter Cronus reproduzieren kannst, dann melde es Microsoft :-(

17. April 2008 08:24

Hi,

beim Debuggen wird der aktuelle Windows Login User verwendet. Vermutlich ist das ein anderer als dein NAS User?

Gruesse
feri

17. April 2008 11:50

Du könntest die Kommandozeile per RUNAS unter dem "eigentlichen" NAS-User laufen lassen. Damit hast Du dann auch den Systemkontext des Users.

17. April 2008 13:31

Hi,

Danke für die Tipps!

Es funktioniert nun :-)

Habe die Verbindungseinstellungen alle nochmal neu gesetzt,darauf geachtet, dass sich der DB-Server genauso anmeldet wie der NAS, den DB-Server und den NAS neu gestartet und dann lief es.
Es lief sogar, wenn der Windows-User, mit dem sich der DB-Server und NAS verbinden ein anderer war als der User mit dem ich in Windows angemeldet war.

Gruß,
Blue

17. April 2008 13:41

Hm also nochmal für Dumme: was war nun der Fehler?

17. April 2008 13:46

aufgefallen ist mir nur, dass der DB-Server sich vorher mit einem anderen Windows-Login angemeldet hat als der NAS. Die müssen sich anscheinend mit dem gleichen Login anmelden, was aber nicht das Login sein muss, mit dem man gerade bei Windows angemeldet ist.