0
Published

Forefront Identity Management Service is not able to serialize this XOML definition

Beau Harrison 1 year ago • updated by anonymous 1 year ago 1

Description

After having installed the FIM Event Broker portal workflow and configured the workflow a PostProcessingError is encountered in the request that executed the workflow, similar to:

Forefront Identity Manager Service is not able to serialize this XOML definition '<ns0:SequentialWorkflow name="SequentialWorkflow" ... />'

Affected Software

  • Microsoft Forefront Identity Manager

Cause

The assembly version referenced by the FIM Event Broker Portal Workflow is not recognized by the FIM Portal instance. This results in an XOML definition which is considered incorrect by the FIM Service.

Resolution

The fix involves telling the FIM Portal to accept the versions provided by the FIM Event Broker Portal Activity. This is achieved through the use of Binding Redirection.

First locate the Microsoft.ResourceManagement.Service.exe.config file located in the FIM Service directory, which in a default implementation will be located at: C:\Program Files\Microsoft Forefront Identity Manager\2010\Service\Microsoft.ResourceManagement.Service.exe.config

Next add the following the following XML block under the configuration element:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="FunctionLibrary" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="4.0.0.0-4.65535.65535.65535" newVersion="4.1.2273.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.IdentityManagement.Activities" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="4.0.0.0-4.65535.65535.65535" newVersion="4.1.2273.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.ResourceManagement.Automation" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="4.0.0.0-4.65535.65535.65535" newVersion="4.1.2273.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.ResourceManagement" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="4.0.0.0-4.65535.65535.65535" newVersion="4.1.2273.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.IdentityManagement.WFExtensionInterfaces" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="4.0.0.0-4.65535.65535.65535" newVersion="4.1.2273.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

In the example configuration the newVersion is 4.1.2273.0. This needs to be updated to match the current version of the FIM implementation.