Настроил тестовое окружение для работы с Microsoft Dynamics CRM 4.0 (не ставил ни одного роллапа). При работе с механизмом Workflow в MS CRM 4.0 столкнулся с необъяснимым багом. Все вы знаете, что текстовое поле можно форматировать под себя, т.е. выводить в нем статическое и динамическое значения. (поле test)
![]()
Все вроде бы логично и не должно вызывать какие-либо исключения, но при публикации данного бизнес-процесса, мое поле test переставало содержать динамического значение, и становилось полностью статическим:
![]()
Установил Rollup 4 для MS CRM 4.0 , но это не помогло, к тому же публиковать этот бизнес-процесс стало невозможно, на что я получал ошибку «Произошла ошибка во время создания бизнес-правила. Попробуйте сохранить бизнес-правило еще раз». Пришлось смотреть трассировку, которая выдала мне следующее:
Error: Выдано исключение типа «System.Web.HttpUnhandledException».
Error Number: 0×80045001
Error Message: Workflow compilation failed:
WF1399: Сбой при проверке Activity «UpdateStep3_policy»: Недопустимое значение свойства «RuleSetReference». Недопустимый набор правил. Обнаружены ошибки при проверке правила «main». Тип System.Globalization.CultureInfo не помечен как разрешенный в файле конфигурации приложения
Все указывало на то, что чего-то не хватает в файле web.config.
Оказывается, что при установке роллапов иногда меняется сам файл web.config, но в моем случае он был не до конца изменен, а именно не хватало следующей строки:
<authorizedType Assembly=»mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ Namespace=»System.Globalization» TypeName=»CultureInfo» Authorized=»True»/>
После внесения этих изменений, проблема разрешилась.
Итак, краткая инструкция.
- Найдите файл Web.config
- На сервере: <системный диск>:\inetpub\wwwroot
- На клиенте, по умолчанию: <системный диск e>:\Program Files\ Microsoft CRM\Client\res\Web
- Обязательно сделайте резервную копию существующего файла Web.config
- Откройте файл в любом текстовом редакторе.
- Внесите изменения .
- Сохраните файл, делаем рестарт IIS (iisreset) и запускайте MS CRM 4.0
<configuration>
<System.Workflow.ComponentModel.WorkflowCompiler>
<authorizedTypes>
<authorizedType Assembly=»mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ Namespace=»System.Globalization» TypeName=»CultureInfo» Authorized=»True»/>
</authorizedTypes>
</System.Workflow.ComponentModel.WorkflowCompiler>
</configuration>
В дополнение: Ручное изменение web.config
