无法在插件注册工具中调试动态C#插件

背景

我在Dynamics 2016内部部署了一个C#插件,它使用一个库来调用其他系统。 该库的一部分是使用Web API调用动态。 插件正在采取行动,因为我可以看到动态的变化,但我期待它采取不同于它采取的行动。 当我尝试使用插件注册工具调试插件时,我遇到了一些问题。 当我使用Exception方法分析插件时,我得到一个exception文件,我可以调试到一个点。 当我到达下面的代码时,插件注册工具崩溃而没有错误消息。 当我使用Persist to Entity方法进行调试时,我的插件似乎成功,但插件注册工具中没有记录任何配置文件。 我的插件是从一个动作触发的,该动作是从附加到业务流程流程的工作流程触发的(这是基于本文)。 我最初的问题是在这里导致了这个问题。 有关让调试器使用我的代码的任何想法?

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; string url = "ccseq_clients"; responseMessage = client.GetAsync(url).Result; 

我记得这个问题,当我调试SharePoint在线REST API调用时,它总会崩溃。 然后我添加了跟踪服务和记录的检查点来validation代码执行路径。 我将在PRT中下载Profiler跟踪日志和重播,而不是调试,以查看成功或失败分支。

当您将插件跟踪配置为在系统设置下记录All时 ,它的开发模式将非常有用。

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

参考

在你的情况下:

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