Dynamics CRM 2011 SyncWorkflowExecutionPlugin не может найти сборку - PullRequest
0 голосов
/ 19 апреля 2020

На нашем сервере Dynamics CRM 2011 неожиданно возникла странная ошибка - указанная c сборка плагина не может быть найдена, когда запуск плагина запускается в процессе рабочего процесса, с ошибкой:

[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 все совпадают. Как ни странно, шаги плагина работают нормально, когда выполнение запускается напрямую через запрос create / update / et c - только когда запуск запускается через рабочий процесс, возникает ошибка. И при запуске через рабочий процесс я не имею в виду запуск активности кода из этой сборки, я имею в виду ситуацию вроде:

  • Сущность создана
  • Плагин OnCreate из Assembly1 запускается без проблем
  • Запускается рабочий процесс, который обновляет связанную сущность, вызывая плагин OnUpdate из Assembly1 - ОШИБКА

Эта проблема возникла изначально после перезапуска сервера. Другой перезапуск временно исправил это, пока два дня спустя это не повторилось снова. Мы перепробовали все, что только могли придумать: обновить сборку, отменить регистрацию / перерегистрацию, перезапустить все службы, снова запустить сервер. Кто-нибудь знает, что может быть причиной этого и как это исправить?

1 Ответ

0 голосов
/ 22 апреля 2020

Мы обнаружили, что проблема была вызвана обновлением Windows, которое было применено до первоначального перезапуска, который установил. NET framework v4.8 на сервере. Хотя приложение все еще использовало более старую версию, очевидно, достаточно просто установить v4.8, чтобы вызвать ошибки. Возврат к более ранней версии. NET исправил проблему.

Я не уверен, какова точная техническая причина этого - похоже, что-то связано с доменами приложений (https://docs.microsoft.com/en-us/dotnet/api/system.appdomain?view=netframework-4.8). Но если вы столкнулись с подобной проблемой, проверьте вашу. NET версию фреймворка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...