首页 > 解决方案 > Dynamics CRM 2011 SyncWorkflowExecutionPlugin 找不到程序集

问题描述

在我们的 Dynamics CRM 2011 服务器上突然出现一个奇怪的错误 - 当通过工作流程触发插件执行时,找不到特定的插件程序集,并出现错误:

[Microsoft.Crm.ObjectModel: Microsoft.Crm.ObjectModel.SyncWorkflowExecutionPlugin]
[324f29aa-6082-ea11-80ee-005056837add: ]
Starting sync workflow 'workflow name', Id: 2d4f29aa-6082-ea11-80ee-005056837add
Sync workflow 'workflow name' terminated with error 'The type initializer for '<Module>' threw an exception.'

异常堆栈跟踪最终导致:

Inner Exception: <CrtImplementationDetails>.ModuleLoadException: The C++ module failed to load while attempting to initialize the default appdomain.

at <CrtImplementationDetails>.ThrowModuleLoadException(String errorMessage, Exception innerException)
at <CrtImplementationDetails>.LanguageSupport.Initialize(LanguageSupport* )
at .cctor()
Inner Exception: System.Runtime.Serialization.SerializationException: Unable to find assembly 'AssemblyName, Version=8.75.0.267, Culture=neutral, PublicKeyToken=4e4051c21cef725b'.

该程序集存在于服务器上,版本、文化和公钥令牌都匹配。奇怪的是,当通过创建/更新/等请求直接触发执行时,插件步骤工作正常 - 只有当通过工作流触发执行时才会发生错误。通过工作流触发,我并不是指从该程序集中运行代码活动,而是指如下情况:

此问题最初是在服务器重新启动后出现的。再次重新启动暂时修复了它,直到两天后它再次开始发生。我们已经尝试了我们能想到的一切——更新程序集、注销/重新注册它、重新启动所有服务、再次重新启动服务器。有谁知道这可能是什么原因以及如何解决它?

标签: c#.netwindowsdynamics-crmdynamics-crm-2011

解决方案


我们发现该问题是由在初始重启之前应用的 Windows 更新引起的,该更新在服务器上安装了 .NET Framework v4.8。尽管该应用程序仍在使用旧版本,但显然仅安装 v4.8 就足以导致错误。恢复到较早的 .NET 版本解决了该问题。

我不确定确切的技术原因是什么 - 似乎与应用程序域有关(https://docs.microsoft.com/en-us/dotnet/api/system.appdomain?view=netframework-4.8) . 但如果您遇到类似问题,请检查您的 .NET 框架版本。


推荐阅读