Impossible de déboguer le plug-in Dynamics C # dans l’outil d’enregistrement de plug-in

Contexte

J’ai un plug-in C # dans Dynamics 2016 sur site qui utilise une bibliothèque pour passer des appels vers d’autres systèmes. Une partie de cette bibliothèque est un appel à la dynamic utilisant l’API Web. Le plugin prend des mesures car je peux voir les changements de dynamic, mais je m’attends à ce qu’il prenne des mesures différentes de celles qu’il prend. Lorsque j’essaie de déboguer le plug-in à l’aide de l’outil d’enregistrement de plug-in, je rencontre certains problèmes. Lorsque je profile le plug-in à l’aide de la méthode Exception, je reçois un fichier d’exception que je suis en mesure de déboguer jusqu’à un moment donné. Lorsque j’arrive au code ci-dessous, l’outil d’enregistrement de plug-in se bloque sans message d’erreur. Lorsque je débogue en utilisant la méthode Persist to Entity, mon plug-in semble réussir, mais aucun profil n’est enregistré dans l’outil d’enregistrement de plug-in. Mon plug-in est déclenché à partir d’une action déclenchée à partir d’un stream de travail lié à l’achèvement d’un stream de processus métier (basé sur cet article). Ma question initiale est ici qui a conduit à cette question. Avez-vous des idées pour que le débogueur fonctionne avec mon code?

Code

HttpClient client = new HttpClient(new HttpClientHandler() { Credentials = new NetworkCredential("admin", "password", "DOMAIN") }); client.BaseAddress = new Uri(Helpers.GetSystemUrl(COHEN.APIConnector.Application.Dynamics)); client.DefaultRequestHeaders.Clear(); client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); client.DefaultRequestHeaders.Add("OData-MaxVersion", "4.0"); client.DefaultRequestHeaders.Add("OData-Version", "4.0"); HttpResponseMessage responseMessage; ssortingng url = "ccseq_clients"; responseMessage = client.GetAsync(url).Result; 

Je me souviens de ce problème. Lors du débogage des appels de l’API REST SharePoint en ligne, il se bloquait toujours. Ensuite, j’ai ajouté le service de traçage et les points de contrôle enregistrés pour vérifier le chemin d’exécution du code. Au lieu de déboguer, je téléchargerai le journal de suivi du profileur et la relecture dans PRT pour voir la twig de succès ou d’échec.

Lorsque vous configurez le traçage du plug-in pour consigner tout sous les parameters système, le mode Dev est très utile.

  ITracingService tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService)); try { tracingService.Trace("Attempting to obtain Phone value..."); phone = account["telephone1"].ToSsortingng(); } catch(Exception error) { tracingService.Trace("Failed to obtain Phone field. Error Details: " + error.ToSsortingng()); throw new InvalidPluginExecutionException("A problem has occurred. Please press OK to continue using the application."); } 

Référence

Dans ton cas:

  if(responseMessage != null) { tracingService.Trace("API call success & got responseMessage."); } else { tracingService.Trace("responseMessage was empty."); }