Microsoft Dataverse依赖插件(包)的分析与调试问题咨询
调试以Package形式部署的Dataverse依赖插件方法
当插件通过Package部署无法使用Plugin Profile时,有以下几种调试方法:
本地附加进程调试
确保本地Visual Studio中的插件代码和部署到Dataverse的版本完全一致,然后找到Dataverse的沙盒工作进程Microsoft.Crm.Sandbox.WorkerProcess.exe(联机环境需用远程调试工具,直接在本地VS中附加远程进程即可),设置好断点后触发插件对应的业务操作,就能命中断点调试。注意生产环境尽量别这么干,避免影响正常业务。利用ITracingService打日志
这是最安全的线上调试方式,直接在插件代码里加入追踪日志,把关键步骤、变量值都输出出来。部署后通过Dataverse的插件追踪日志(在解决方案的插件节点下查看,或者用高级查找筛选“插件追踪日志”实体)就能看到详细执行信息。
示例代码:public void Execute(IServiceProvider serviceProvider) { ITracingService tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService)); tracingService.Trace("插件开始执行,当前用户ID:{0}", ((IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext))).UserId); // 业务逻辑代码 // ... tracingService.Trace("插件执行完成"); }在开发环境单独注册调试
把插件代码在Dataverse开发环境中用Plugin Registration Tool直接注册,不用Package部署,这样就能正常启用Plugin Profile进行调试。等问题排查修复后,再把更新后的代码打包成Package部署到目标环境。自定义外部日志存储(可选)
如果需要更灵活的日志查看,可以把日志输出到Azure Blob或者其他外部存储,但需要额外配置权限和存储服务,不如ITracingService直接便捷,适合复杂场景的排查。
内容的提问来源于stack exchange,提问作者user3284094
相关产品推荐
相关产品推荐

