You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dynamics 365:实时工作流可加载程序集,后台工作流为何失败?

问题描述

环境信息

  • Dynamics 365 On-Premises,版本2014(9.1.3.11)
  • .NET Framework 4.6.2
  • NuGet包:Microsoft.CrmSdk.Workflow 版本9.0.2.46

现象

开发的多个CodeActivity在实时工作流中运行正常,但切换为后台工作流后,执行时抛出异常:

无法加载文件或程序集 System.Text.Json Version=5.0.0.2

原因解析

1. 运行进程的宿主差异

实时工作流运行在Dynamics 365的IIS前端进程中,该进程的应用目录下已存在System.Text.Json 5.0.0.2程序集——要么是部署CodeActivity时自动同步过来的,要么是网站自身依赖附带的,因此可以正常加载。
而后台工作流由**异步服务(AsyncService)**执行,该服务的运行目录与IIS完全分离,默认不会包含CodeActivity依赖的第三方程序集,自然找不到System.Text.Json。

2. 程序集加载规则不同

IIS进程的web.config中可能配置了程序集绑定重定向,或者全局程序集缓存(GAC)中存在兼容版本,能够自动匹配到System.Text.Json 5.0.0.2。但异步服务的AsyncService.exe.config中没有对应的重定向规则,且该版本的程序集未安装到GAC,导致版本解析失败。

3. 依赖部署的遗漏

Microsoft.CrmSdk.Workflow 9.0.2.46本身并不依赖System.Text.Json,该依赖是你的CodeActivity代码自行引入的。部署时,实时工作流的部署流程(比如插件注册工具的依赖复制选项)会将第三方依赖同步到IIS目录,但异步服务不会自动同步这些外部依赖,必须手动处理。

可行的解决办法
  • 将System.Text.Json 5.0.0.2安装到服务器的GAC中,所有进程(包括异步服务)都能从GAC加载该程序集。
  • 手动复制System.Text.Json 5.0.0.2程序集到异步服务的运行目录:C:\Program Files\Microsoft Dynamics 365\Server\bin\assembly。
  • 编辑AsyncService.exe.config,添加程序集绑定重定向,将对System.Text.Json 5.0.0.2的请求重定向到服务器上已有的兼容版本(如果存在)。

内容的提问来源于stack exchange,提问作者Andrey Bushman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 08:08:30