Dynamics CRM — Unauthorized Exception bei Solutionimport

Beim Installieren einer Solution über den Webservice erhältst du eine Fehlermeldung obschon die gleiche Solution über das Web GUI installierbar ist? Dann habe ich allenfalls die Lösung deines Problems.

Ausgangslage

Solutions können über den CRM Webservice entweder synchron oder asynchron importiert werden. Klassischer weise (über das Web GUI) werden Solutions synchron importiert. In einigen Anwendungsfällen ist die asynchrone Variante aber besser (beispielsweise bei Installationsscripts).

Problem

Beim Durchführen des Imports tritt ein Fehler auf. Die zurückgegebene Fehlermeldung „System.UnauthorizedAccessException” ist etwas verwirrend. Es handelt sich hierbei nicht um ein Problem mit den Sicherheitsrollen wie man vermuten würde. Über das Web GUI konnte die Solution ja installiert werden.

Ursache

Werfen wir das Traceing an sehen wir etwas mehr Details:
 Process:CrmAsyncService |Organization:00000000–0000–0000–0000–000000000000 |Thread: 66 |Category: Platform |User: 00000000–0000–0000–0000–000000000000 |Level: Error |ReqId: 00000000–0000–0000–0000–000000000000 | ExceptionConverter.ConvertMessageAndErrorCode ilOffset = 0x23B

>System.UnauthorizedAccessException: Microsoft Dynamics CRM has experienced an error. Reference number for administrators or support: #2D85235B: System.UnauthorizedAccessException: Access to the path ‘c:\Program Files\Microsoft Dynamics CRM\CustomizationImport\61487b7735ae47348bec4bdc0153167e’ is denied.
 

Lösung

Der Serviceaccount für den AsyncService muss entsprechend Rechte für den Ordner „c:\Program Files\Microsoft Dynamics CRM\CustomizationImport\” erhalten. Sonst können die temporären Dateien für den Import nicht angelegt respektive gelöscht werden.