Настроил тестовое окружение для работы с Microsoft Dynamics CRM 4.0 (не ставил ни одного роллапа). При работе с механизмом Workflow в MS CRM 4.0 столкнулся с необъяснимым багом. Все вы знаете, что текстовое поле можно форматировать под себя, т.е. выводить в нем статическое и динамическое значения. (поле test)

wf1399-1

Все вроде бы логично и не должно вызывать какие-либо исключения, но при публикации данного бизнес-процесса, мое поле test переставало содержать динамического значение, и становилось полностью статическим:

wf1399-2

Установил 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»/>

После внесения этих изменений, проблема разрешилась.
Итак, краткая инструкция.

  1. Найдите файл Web.config
    1. На сервере: <системный диск>:\inetpub\wwwroot
    2. На клиенте, по умолчанию: <системный диск e>:\Program Files\ Microsoft CRM\Client\res\Web
  2. Обязательно сделайте резервную копию существующего файла Web.config
  3. Откройте файл в любом текстовом редакторе.
  4. Внесите изменения .
  5. <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>

  6. Сохраните файл, делаем рестарт IIS (iisreset) и запускайте MS CRM 4.0

В дополнение: Ручное изменение web.config