[GELÖST] RTC Berechtigungsproblem mit Automation

5. März 2014 16:15

Hallo zusammen,

ich habe ein lästiges Berechtigungsproblem mit einer Automation und dem RTC.

In einer Codeunit wird die Automation "'Microsoft Script Control 1.0'.ScriptControl" als Local Variable verwendet.
Der Aufruf der Methode AddCode funktioniert mit dem Classic Client einfwandfrei.
Rufe ich aber die Codeunit über den RTC auf, erhalte ich immer die Fehlermeldung (siehe auch Beilage):

This message is for C/AL programmers: The call to member AddCode failed: Erlaubnis verweigert..

Das Problem habe ich auf einem Server 2008R2 (SQL 2008) und einem Server 2012 (SQL2008).
Auf einem Server 2008 (SQL 2008) funktioniert dasselbe aber einwandfrei.
Die Codeunit kann ohne Fehler kompiliert werden. Alle Umgebungen haben exakt denselben Objektstand.
Bei allen 3 Umgebungen sind der SQL-Server, der NAV-Server und der NAV-Client (CC und RTC) auf demselben Server installiert.

Ich gehe mal davon aus, dass es sich um ein Windowsberechtigungs-Problem handelt.
Aber wo??? Ich habe nach stundenlangem Suchen nichts gefunden, was mir geholfen hat.

Vielen Dank für Tipps, Beno
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von beno am 7. März 2014 08:47, insgesamt 1-mal geändert.

Re: RTC Berechtigungsproblem mit Automation

5. März 2014 20:13

Es wäre zunächst einmal hilfreich zu wissen, was diese Automation speziell bei AddCode überhaupt macht.
"Erlaubnis verweigert" könnte vielleicht darauf hindeuten, dass versucht wird, eine Datei zu lesen oder zu schreiben. Hat der NAV-Dienst-Benutzer Berechtigung für den Zielort?

Re: RTC Berechtigungsproblem mit Automation

6. März 2014 08:43

Guten Morgen Natalie,

ich habe den Code nicht selber geschrieben. So wie ich ihn jedoch interpretiere, wird ein VB-Script vorbereitet und ausgeführt.
Dies funktioniert auf allen Servern mit dem CC. Aber nur auf einem Server mit dem RTC. Auf allen Servern sind die 3 Tier installiert.
Ebenso läuft der NAV-Server mit dem Benutzer Netzwerkdienst. Delegations wurden keine vorgenommen.
Beim Debug des RTC habe ich gesehen, dass das Problem beim ersten Ausführen von ScriptControlL.AddCode(TxtCodeL); auftritt.

Hier der Code (lokale Variable "ScriptControlL"):

Code:
IF ISCLEAR(ScriptControlL) THEN
  CREATE(ScriptControlL);

WSHFolderL := FileSystemObjectL.GetFolder(DirectoryP);
WSHFilesL := WSHFolderL.Files;

ScriptControlL.Language := 'VBScript';
ScriptControlL.AddObject('FilesByName',WSHFilesL);
ScriptControlL.AddObject('FilesById',FilesDictL);

TxtCRL := '';
TxtCRL[1] := 13;
TxtCodeL :=
  'dim f1' + TxtCRL +
  ' For Each f1 in FilesByName' + TxtCRL +
  ' FilesById.Add (FilesById.Count+1), f1' + TxtCRL +
  ' Next' + TxtCRL;
ScriptControlL.AddCode(TxtCodeL);
TxtCodeL :=
  'function GetItem(i)' + TxtCRL +
  ' GetItem = FilesById(i)' + TxtCRL +
  'end function' + TxtCRL;
ScriptControlL.AddCode(TxtCodeL);
ScriptControlL.ExecuteStatement(TxtCodeL);
FileTableTempL.DELETEALL();


Müsste ich dem Benutzer Netzwerkdienst zusätzliche Rechte vergeben???
Oder müsste ich einen anderen Benutzer verwenden.
Komisch ist nur, dass es auf einem anderen, identischen Server (1:1 Klon) funktioniert.

Viele Grüsse, Beno

Re: RTC Berechtigungsproblem mit Automation

7. März 2014 08:47

Guten Morgen,

das Problem ist gelöst. Es wahr so naheliegend, dass ich schlicht und einfach zu weit gesucht hatte. Zudem hatte mich die Fehlermeldung verwirrt.
Es lag tatsächlich an den Berechtigungen an einem Verzeichnis. Auf dem Share, welcher verwendet wurde, war die Berechtigung vorhanden.
Aber auf dem Verzeichnis selber halt eben nicht...!

Ich wünsche allen einen schönen Tag, Beno