Tag Archives: troubleshooting

Access is denied beim async Solution Import (ImportSolutionRequest & ExecuteAsyncRequest )

Der Versuch eine Solution “ImportSolutionRequest” mit dem “ExecuteAsyncRequest” zu importieren scheitert mit folgendem Fehler:

“Solution Import Failed: 31 Unhandled Exception: System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]: Access is denied. Detail: <OrganizationServiceFault xmlns:i=”http://www.w3.org/2001/XMLSchema-instance” xmlns=”http://schemas.microsoft.com/xrm/2011/Contracts”> <ErrorCode>-2147187707</ErrorCode> <ErrorDetails xmlns:d2p1=”http://schemas.datacontract.org/2004/07/System.Coll
ections.Generic” /> <Message>Access is denied.</Message><Timestamp>2014-08-22T12:31:53.4691706Z</Timestamp>”.

Continue reading

Falscher UniqueName bei Custom Actions in CRM 2013

Die Anforderung scheint relativ einfach:
Eine Custom Action soll dynamisch (natürlich über Code – anders lassen sich Actions gar nicht aufrufen) aufgerufen werden. Mit dynamisch ist hier gemeint, dass der Benutzer den Namen (Displayname) der Action eingibt.

Um eine Action zu triggern muss ein OrganizationRequest mit dem Namen der Action erstellt und ausgeführt werden. Dabei muss der Name dem UniqueName der Action entsprechen.

Die folgenden Bilder zeigen wie eine Action mit dem Displayname “MSSolveTest1” und dem UniqueName “new_MSSolveTest1” angelegt wird.

action bug 1

action bug 2

Nun kann die Action wie folgt getriggert werden:

var actionRequest = new OrganizationRequest("new_MSSolveTest1");
OrganizationServiceContext.Execute(actionRequest);

Um die Applikation gemäss Anforderung umzusetzen muss nun nur der UniqueName der Action (die durch einen Record in der Workflow-Entity repräsentiert wird) über den Displaynamen geholt werden.
Und genau hier gibt es ein Problem.

Das folgende Bild zeigt einen Auszug von Attributen der eben erstellten Action.
Diese wurden über den OData Service geholt.
https://mycrm.com/XRMServices/2011/OrganizationData.svc/WorkflowSet?$filter=Name%20eq%20%27MSSolveTest1%27

action bug 3

Wie hier deutlich zu sehen ist, ist der UniqueName OHNE Solution Präfix gespeichert. Um die Action zu triggern ist jedoch der UniqueName MIT Solution Präfix nötig.

Der Microsoft Support hat bestätigt, dass es sich hierbei um einen Fehler handelt und einen Fix versprochen. Dieser wurde niedrig priorisiert und wird deshalb erst mit der “Fall Wave” (siehe CRM 2013 Roadmap) ausgeliefert.

Workaround:
Das Präfix der Solution bzw. des Publishers der Solution muss manuell geholt werden.
Action -> Solution -> Publisher -> Präfix (Achtung: Befindet sich die Action in der System Solution ist kein Präfix angegeben)

0x80040216 – Expected to find one SdkMessageFilter for SdkMessageId {GUID} PrimaryEntity 10015 and SecondaryEntity 0. Found 0 records.

Wenn du probierst eine CRM Solution mit einer Custom Action, auf der wiederum ein Plugin Step (SdkMessageProcessingStep) registriert ist, im CRM Online zu importieren erhältst du den folgenden Fehler.

“0x80040216 – Expected to find one SdkMessageFilter for SdkMessageId {GUID} PrimaryEntity 10015 and SecondaryEntity 0. Found 0 records.”

Dabei handelt es sich um einen Fehler im CRM Online.
Der Microsoft Support hat den Fehler bestätigt. Er soll mit einem der nächsten URs behoben werden.

Workaround: Die Solution mit der Action ohne registrierten Step importieren und den Step auf dem Zielsystem mit dem Plugin Registration Tool manuell registrieren.

CRM Login Versuch scheitert mit Login Prompt und 401

Symptom
Beim Versuch sich im CRM einzuloggen erscheint ein Login Prompt. Obwohl der Username und das Passwort richtig eingegeben werden erscheint der Prompt wieder. Nach ein paar Versuchen erscheint “HTTP Error 401 – Unauthorized Access is denied”.

Ausgangslage
Die Authentifizierung am CRM erfolgt über ADFS (Claims Authentication und IFD ist eingeschalten).

Verifizierung
Im Eventlog des CRM Servers erscheint der folgende Eintrag:
Exception message: ID4175: The issuer of the security token was not recognized by the IssuerNameRegistry. To accept security tokens from this issuer, configure the IssuerNameRegistry to return a valid name for this issuer.

Ursache
Der ADFS signiert seine Tokens mit einem Token Signing Cert.
Das CRM (oder genauer die WIF) überprüft anhand eines Thumbprints ob der erhaltene Token von einer Vertrauenswürdigen Stelle stammt.Ändert sich das Zertifikat, so ändert sich auch der Thumbprint und das CRM nimmt den Token nicht mehr entgegen. Das Token Singing Zertifikat wird von einem mittels Auto Certificate Rollover automatisch erneuert wenn es abgelaufen ist.

Lösung
1. Im CRM Deployment Manager Claims Auth und IFD ausschalten (die Konfiguration geht nicht verloren).
2. IIS Reset durchführen
3. Im CRM Deployment Manager Claims Auth und IFD, mit denselben Einstellunge, wieder einschalten.
4. Auf dem ADFS (ADFS Management Console) die Federation Metadata updaten.

http://support.microsoft.com/kb/2686840

Deployment Webservice – “ActiveDirectoryRightsCheck raising error”

Wenn du versuchst über den Deployment Webservice oder über PowerShell, mit dem “Create-Organization” Cmdlet, eine neue Organisation zu erstellen erhältst du die Fehlermeldung “ActiveDirectoryRightsCheck raising error : The current user does not have required permissions (read/write) for the following Active Directory group: CN=ReportingGroup GUID,OU=X,DC=Y,DC=Z”.

Die volle PowerShell Fehlermeldung:

Source : mscorlib
Method : HandleReturnMessage
Date : ….
Time : ….
Error : Message: The Deployment Service cannot process the request because one or more validation checks failed.
ErrorCode: –2147167645
Stack Trace :
======================================================================================================================
Inner Exception Level 1 :
==DeploymentServiceFault Info==========================================================================================
Error : The Deployment Service cannot process the request because one or more validation checks failed.
Time : …
ErrorCode : –2147167645
Date : …
Time : …
Error Items:
ActiveDirectoryRightsCheck raising error : The current user does not have required permissions (read/write) for the following Active Directory group:
CN=ReportingGroup GUID,OU=X,DC=Y,DC=Z
======================================================================================================================
+ CategoryInfo : InvalidData: (Microsoft.Crm.P…anizationCmdlet:NewCrmOrganizationCmdlet) [New-CrmOrganization], FaultException`1
+ FullyQualifiedErrorId : CRM Deployment Cmdlet Error,Microsoft.Crm.PowerShell.NewCrmOrganizationCmdlet
+ PSComputerName : ……

Ursache
Der Service Account des Deployment Webservices hat nicht die benötigten Rechte um auf der “ReportingGroup {GUID}” AD-Gruppe Änderungen vorzunehmen.

Lösung
Der Service Account muss im Active Directory auf der OU, in dem die CRM Gruppen liegen, berechtigt werden.

Deployment Service 1

Deployment Service 2

CRM 4 Workflows werden nicht mehr ausgeführt

Im CRM 4 werden keine Workflows nicht ausgeführt. Der Tracelog enthält folgenden Eintrag: Exception while trying to execute AsyncOperationId: {GUID} AsyncOperationType: 12 – System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send. —> System.IO.IOException: The handshake failed due to an unexpected packet format.

Die Ursache des Problems ist, dass der Async Service probiert über SSL (https) auf den CRM Service zuzugreifen und dabei scheitert.

Verifizieren des Problems:

  • Das Problem tritt bei jedem Workflow auf dem System auf
  • Der “Microsoft CRM Asynchronous Processing Service” läuft
  • EinNeustart des “Microsoft CRM Asynchronous Processing Service” behebt das Problem nicht
  • Die Bindings für das IIS Web für das CRM beinhalten http wie auch https

Beheben des Problems:

  1. Öffnen der “MSCRM_CONFIG” Datenbank
  2. Navigieren zur “DeploymentProperties” Tabelle
  3. Die Spalte “NVarCharColumn” des Datensatzes “AsyncSdkRootDomain” editierten. Der Port muss entfernt werden. “crm.contoso.ch:80” wird zu “crm.contoso.ch”
  4. Neustarten des “Microsoft CRM Asynchronous Processing Service”

CRM 2013 Online Error:Object doesn’t support property or method ‘Form_onload’

Fehler:

Message from webpage

There was an error with this field’s customized event.

Field:window

Event:onload

Error:Object doesn’t support property or method ‘Form_onload’

OK

Ursache:
Die Managed Solution enthält folgendes XML:
<clientincludes>
<internaljscriptfile src=”$webresource:Opportunity_main_system_library.js” solutionaction=”Removed” />
</clientincludes>

Workaround:
XML aus managed Solution löschen.

Problem:
Das muss bei jedem Import gemacht werden.

Lösung:
1.    Solution unmanaged exportieren.
2.    Sicherstellen das folgende Zeilen im XML vorhanden sind: <internaljscriptfile src=”$webresource:Opportunity_main_system_library.js” />
3.    Auf einem FRISCHEN ONLINE Mandanten importieren
4.    Exportieren -> Das das fehlerhafte XML ist nicht mehr vorhanden

Sonstige amüsante Dinge:
–    Das Problem lässt sich auch reproduzieren indem eine Unmanaged solution ohne <internaljscriptfile src=”$webresource:Opportunity_main_system_library.js” /> importiert wird
–    Das customization.xml enthält auch andere Webresourcen die durch die Solution entfernt werden (so z.B. der Account) da tritt jedoch kein Problem auf
o    Das lässt die Vermutung zu, dass die „reparierte“ Solution evtl. später Probleme machen könnte
–    Eine defekte solution als unmanaged exportieren, anpassen und wieder auf demselben System importieren bringt nichts