【问题标题】:Dynamics CRM 2011 SyncWorkflowExecutionPlugin unable to find assemblyDynamics CRM 2011 SyncWorkflowExecutionPlugin 找不到程序集
【发布时间】:2020-08-02 04:00:13
【问题描述】:

在我们的 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'.

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

  • 实体已创建
  • Assembly1 的 OnCreate 插件运行没有问题
  • 运行更新相关实体的工作流,从 Assembly1 触发 OnUpdate 插件 - 错误

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

【问题讨论】:

  • 几个问题,您是否在代码中使用任何第 3 方 dll?你有你的 Prod CRM 服务器(Sql + 应用程序服务器)拆分,即它们在不同的机器上。?

标签: c# .net windows dynamics-crm dynamics-crm-2011


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-21
    • 1970-01-01
    • 1970-01-01
    • 2012-01-21
    • 2013-06-13
    相关资源
    最近更新 更多