[RTC] Fehlermeldung: CTL_E_PERMISSIONDENIED

27. Juni 2013 08:58

Hallo zusammen,

Ein Kunde von uns möchte seine Bestellungen als PDF über eine Mail versenden.
Dazu muss die PDF ja allerdings in einem Pfad erst einmal gespeichtert werden.

Wir bekommen folgende Fehlermeldung:
Meldung für C/AL-Programmierer: Fehler beim Aufruf von Member 'CreateFolder': AUsnahme von HRESULT: 0x800A0046
(CTL_E_PERMISSIONDENIED)

Der Pfad in dem es gespeichert werden soll:
//fileserver/einkaufpdf

Dieser existiert auch. Wieso will man den Ordner denn neu anlegen?
Kann mir da jemand weiter helfen?

LG
Kai

Re: [RTC] Fehlermeldung: CTL_E_PERMISSIONDENIED

27. Juni 2013 09:12

Hallo,

wo wird die fehlerhafte Funktion ausgeführt auf dem Client oder dem Service- Tier? Falls auf dem Service- Tier, hat der Benutzer unter dem der NAV- Dienst läuft eine passende Berechtigung auf dieses Verzeichnis?

Gruß, Fiddi

Re: [RTC] Fehlermeldung: CTL_E_PERMISSIONDENIED

27. Juni 2013 09:29

Wir rufen eine Funktion in einer CodeUnit auf um die PDF-Datei zu erstellen und zu speichern.

Laut Kunde hat der Benutzer die Berechtigungen, um in diesen Laufwerk schreiben zu können. Lediglich die Rechte etc darf der Benutzer nicht ändern.

LG
Kai

Re: [RTC] Fehlermeldung: CTL_E_PERMISSIONDENIED

27. Juni 2013 09:34

Welcher Benutzer hat die Berechtigung, der am Client oder der vom Servicetier?

Gruß, Fiddi

Re: [RTC] Fehlermeldung: CTL_E_PERMISSIONDENIED

27. Juni 2013 09:44

Der am Client, sprich die Windowsanmeldung.
Brauch der ServiceTier auch Berechtigungen oder hauptsächlich der?

LG
Kai

Re: [RTC] Fehlermeldung: CTL_E_PERMISSIONDENIED

27. Juni 2013 10:41

Kai R. hat geschrieben:Wir bekommen folgende Fehlermeldung:
Meldung für C/AL-Programmierer: Fehler beim Aufruf von Member 'CreateFolder': AUsnahme von HRESULT: 0x800A0046
(CTL_E_PERMISSIONDENIED)

Der Pfad in dem es gespeichert werden soll:
//fileserver/einkaufpdf

Dieser existiert auch. Wieso will man den Ordner denn neu anlegen?
Kai R. hat geschrieben:Wir rufen eine Funktion in einer CodeUnit auf um die PDF-Datei zu erstellen und zu speichern.

Ich vermute, dass die Codeunit nicht prüft, ob das Verzeichnis schon existiert, und will es einfach anlegen.

Re: [RTC] Fehlermeldung: CTL_E_PERMISSIONDENIED

27. Juni 2013 10:50

Wir prüfen schon, ob das Verzeichnis existiert.

Code:
IF NOT WshFolder_l.FolderExists(PurchPaySetup."PDF Save Directory") THEN
  WshFolder_l.CreateFolder(PurchPaySetup."PDF Save Directory");


WshFolder_l ist hier folgende Automation: 'Windows Script Host Object Model'.FileSystemObject

LG
Kai

Re: [RTC] Fehlermeldung: CTL_E_PERMISSIONDENIED

27. Juni 2013 11:15

Kai R. hat geschrieben:WshFolder_l ist hier folgende Automation: 'Windows Script Host Object Model'.FileSystemObject

Wird WshFolder_l auf dem Client oder auf dem ServiceTier erstellt (CREATE mit oder ohne Parameter TRUE)?
Dementsprechend benötigt entweder der Benutzer des RTC oder der Benutzer, unter dem das ServiceTier läuft die entsprechenden Rechte.

Re: [RTC] Fehlermeldung: CTL_E_PERMISSIONDENIED

27. Juni 2013 11:26

Timo Lässer hat geschrieben:
Kai R. hat geschrieben:WshFolder_l ist hier folgende Automation: 'Windows Script Host Object Model'.FileSystemObject

Wird WshFolder_l auf dem Client oder auf dem ServiceTier erstellt (CREATE mit oder ohne Parameter TRUE)?
Dementsprechend benötigt entweder der Benutzer des RTC oder der Benutzer, unter dem das ServiceTier läuft die entsprechenden Rechte.


Dann wird wohl Der ServiceTier die Rechte brauchen.
Werden die Berechtigungen für den ServiceTier genau so angelegt wie für einen Benutzer?

LG
Kai

Re: [RTC] Fehlermeldung: CTL_E_PERMISSIONDENIED

27. Juni 2013 11:34

Werden die Berechtigungen für den ServiceTier genau so angelegt wie für einen Benutzer?


Du musst den Benutzer herausfinden, unter dem der Dienst des ServiceTiers läuft, der benötigt die Berechtigung.

Gruß, Fiddi

Re: [RTC] Fehlermeldung: CTL_E_PERMISSIONDENIED

9. Juli 2013 07:56

Hallo zusammen,

war nun eine Woche nicht im Betrieb, deswegen jetzt erst die Rückmeldung.
Der windows-login und der Benutzer, unter dem der ServiceTier läuft, haben volle Rechte. Trotzdem funktioniert es noch nicht.

Gibt es noch andere Möglichkeiten?

LG
Kai

Re: [RTC] Fehlermeldung: CTL_E_PERMISSIONDENIED

9. Juli 2013 08:31

Kai R. hat geschrieben:Wir prüfen schon, ob das Verzeichnis existiert.
Code:
IF NOT WshFolder_l.FolderExists(PurchPaySetup."PDF Save Directory") THEN
WshFolder_l.CreateFolder(PurchPaySetup."PDF Save Directory");



Hast du mal überprüft, ob Dein Code tatsächlich nur dann versucht das Verzeichnis neu anzulegen, wenn es nicht existiert?
Wie genau sieht "PDF Save Directory" aus? Ich meine jetzt z. b. "//Server/dir" oder "//Server/dir/" ...
Hast Du schon mal probiert in ein normales Laufwerksverzeichnis (C:\pdffiles\my.pdf) statt UNC zu speichern?
Und v. a. bist Du sicher mit //Server/dir statt \\server\dir?

Volker

Re: [RTC] Fehlermeldung: CTL_E_PERMISSIONDENIED

9. Juli 2013 08:40

vsnase hat geschrieben:
Hast du mal überprüft, ob Dein Code tatsächlich nur dann versucht das Verzeichnis neu anzulegen, wenn es nicht existiert?

Das habe ich noch gar nicht in betracht gezogen. Muss ich einmal schauen. Am besten lässt sich das ja auch überprüfen, indem ich ein Standard Laufwerk nehme, wie du unten schon geschrieben hast.

vsnase hat geschrieben:Wie genau sieht "PDF Save Directory" aus? Ich meine jetzt z. b. "//Server/dir" oder "//Server/dir/" ...
Hast Du schon mal probiert in ein normales Laufwerksverzeichnis (C:\pdffiles\my.pdf) statt UNC zu speichern?
Und v. a. bist Du sicher mit //Server/dir statt \\server\dir?

In dem "PDF Save Directory" steht genau der Pfad drin, wie er oben zu sehen ist. Habe es auch schon mit Backslash ausprobiert. Doch auch dies war ohne Erfolg.

Sobald ich obriges getestet habe, werde ich mich wieder melden.

LG
Kai