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



背景

我在Dynamics2016中有一个C#插件,它使用库来调用其他系统。该库的一部分是使用Web API调用动态。插件正在采取行动,因为我可以看到动态的变化,但我预计它会采取不同的行动。当我尝试使用插件注册工具调试插件时,我遇到了一些问题。当我使用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调用时,它总是会崩溃。然后我添加了跟踪服务&记录检查点以验证代码执行路径。我将下载Profiler跟踪日志&在PRT中回放以查看成功或失败分支。

当您将插件跟踪配置为在系统设置下记录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.");
}

最新更新