22. Oktober 2009 17:08
Hallo zusammen,
ich habe ein wirklich komisches Phänomen:
In einer Codeunit lese ich die Tabelle 2000000046 Automation Server um zu prüfen, ob eine DLL registriert wurde.
Dies funktioniert einwandfrei, wenn ich die Codeunit direkt auf dem Server aufrufe. Die Codeunit läuft ebenso einwandfrei wenn ich sie von einem normalen NAV Client (PC) aufrufe.
Nun haben wir aber auch noch eine Terminalserver Anbindung und wenn ich die Codeunit über den NAV Client des Terminalservers aufrufe, ist der NAV Client blockiert.
Es wird keine Fehlermeldung ausgegeben, der Client ist einfach eingefroren.
Beim Debug habe ich gesehen, dass die Blockierung schon beim "recAutomationServersG.RESET" statt findet. Ich habe dann noch ein Form auf die Tabelle 2000000046 Automation Server erstellt und aufgerufen. Auch dort blieb der NAV Client sofort stehen. Man muss den Client dann abwürgen.
Wenn ich das Lesen der Tabelle ausklammere, dann läuft die Codeunit wieder einwandfrei!?!
Nun meine Fragen dazu:
1. Kann es sein, dass auf dem Terminalserver andere Berechtigungen vergeben wurden als auf dem NAV Server und den Clients?
2. Wie kann ich dieses Problem umgehen? Ich sollte unbedingt wissen, ob gewisse DLLs registriert wurden.
3. In meiner Codeunit lese ich auch die Registry, da ich wissen muss, ob ein Programm installiert ist. Kann es auch beim Lesen der Registry zu Problemen kommen?
Die Programme habe ich beigelegt. Die deaktivierten Funktionen sind mit //*** markiert. In diesen Funktionen lese ich die Tabelle "recAutomationServersG.RESET".
Mein Hauptproblem ist, dass ich diese Lösung bei 60 Kunden installieren möchte (bin schon mitten im Rollout) und es sollte für alle gleich ablaufen (also keine Individuallösungen).
Vielen Dank für Eure Hilfe, Beno.
Zuletzt geändert von beno am 11. November 2009 09:11, insgesamt 1-mal geändert.