Thank you for your reply. I've tried running in and out of proc with the same error showing up.
I tried a few different modifications to the miiserver.exe.config (as well as Mmsscrpt.exe.config and the Dllhost.exe.config files). I tried changing 4.0.30319 to 4.0 as per this article:
http://msdn.microsoft.com/en-us/library/w4atty68.aspx
Even though we are only on FIM R2 (not on SP1), I tried a variation on the config file changes recommended here:
http://support.microsoft.com/kb/2772429 but I referenced the newVersion as 4.0.1.0.
Still no luck.
Here's the miiserver.exe.config file. Maybe you'll see something glaringly wrong? Thank you for your help!
<?xml version="1.0" encoding="UTF-16"?>
<configuration>
<configSections>
<section name="resourceManagementClient" type="Microsoft.ResourceManagement.WebServices.Client.ResourceManagementClientSection, Microsoft.ResourceManagement"/>
<section name="resourceManagementService" type="Microsoft.ResourceManagement.WebServices.ResourceManagementServiceSection, Microsoft.ResourceManagement.Service"/>
<section name="resourceSynchronizationClient" type="MIIS.ManagementAgent.ResourceSynchronizationClientSection, mmsmafim"/>
</configSections>
<!--
.NET Runtime startup configuration: If you use a .NET 4.0 runtime, the useLegacyV2RuntimeActivationPolicy attribute is required and must be set to "true".
When multiple versions of the runtime are listed, the first supportedRuntime element should specify the most preferred version of the runtime,
and the last element should specify the least preferred version.
Currently, the Synchronization Service supports the following runtime choices: v2.0.50727 and v4.0.30319. If selected, the version must be found in the \Windows\Microsoft.NET\Framework or \Windows\Microsoft.NET\Framework64 directories.
-->
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0.30319"></supportedRuntime>
<supportedRuntime version="v2.0.50727"></supportedRuntime>
</startup>
<!--
<resourceManagementService/>
Additional properties that can be specified for the <resourceManagementService /> configuration section
PropertyName
DefaultValue Description
________________________________________________________________________________________________________________________________________________________________
dataReadTimeoutInSeconds 58
Database timeout for read operations
Range: 0-max(int16)
dataWriteTimeoutInSeconds 58
Database timeout for write operations
Range: 0-max(int16)
synchronizationDataReadTimeoutInSeconds 1200
Synchronization operations (FIM MA import / export)
that read from the FIM Service are tied to this timeout
to allow these operations extra time to complete if there
are a large number of objects / values in a batch.
Range: 0-max(int16)
Note: The following registry key : ReadTimeOut , in the registry path : HKLM\SOFTWARE\Microsoft\Forefront Identity Manager\2010\Synchronization Service ,
overrides the synchronizationDataReadTimeoutInSeconds property.
synchronizationDataWriteTimeoutInSeconds 1200
Synchronization operations (FIM MA import / export)
that write to the FIM Service are tied to this timeout
to allow these operations extra time to complete if there
are a large number of objects / values in a batch.
Range: 0-max(int16)
externalHostName Defined by
Administrator during set-up This value is used by FIM to define the external host name
that should be used by clients to connect to FIM when you deploy
a Load Balanced configuration.
-->
<resourceSynchronizationClient/>
<!--
Additional properties that can be specified for the <resourceSynchronizationClient /> configuration section. This configuration is used to configure the FIM MA
settings.
PropertyName
DefaultValue Description
________________________________________________________________________________________________________________________________________________________________________________
asynchronous
true This property controls
whether FIM MA uses the older synchronous channel
or the new asynchronous channel when communicating with FIM Service.
aggregate
true This property controls
whether FIM MA can send data to FIM Service in batches.
aggregationThreshold 1000
This property controls the number of attributes per aggregated batch.
delayUpdateAcknowledgements false
This property controls whether the FIM Management Agent sends acknowledgements to
FIM Synchronization Service immediately upon Request completion, or withholds them
until the end for Update operations. Setting this to true may reduce the overall time
to export data, but the FIM Synchronization Service UI statistics are not updated as frequently.
exportRequestsInProcessMaximum 50
This property controls the maximum number of export requests that
can be in process.
-->
<system.diagnostics>
<sources>
<source name="ForefrontIdentityManager.ManagementAgent" switchValue="Warning">
<listeners>
<add initializeData="ForefrontIdentityManager.ManagementAgent" type="System.Diagnostics.EventLogTraceListener, System, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089"
name="MAExceptionEventLogListener" traceOutputOptions="LogicalOperationStack, DateTime, Timestamp, Callstack">
<filter type="" />
</add>
</listeners>
</source>
<source name="ForefrontIdentityManager.ManagementAgent.EventTracingForWindowsTraceSource" switchValue="Verbose">
<listeners>
<add name="MAEventTracingForWindowsListener"
type="System.Diagnostics.Eventing.EventProviderTraceListener, System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
initializeData="{C4D0C1D4-909D-481b-B011-10E682A6009C}" />
</listeners>
</source>
</sources>
</system.diagnostics>
<!-- Instructions for collecting ETW Traces
To collect ETW traces for Microsoft.ResourceManagement.Service. Run the following commands in the specified order from
an elevated command prompt.
1. To start a new etw trace session : logman start mysession -p {C4D0C1D4-909D-481b-B011-10E682A6009C} -o FIMMAETWtrace.etl -ets
2. To stop a running etw trace session : logman stop mysession -ets
To format the collected traces run any of the following commands (from an elevated command prompt) depending
on the required output format.
1. tracerpt FIMMAETWtrace.etl -o FIMMAEventTrace.xml -of XML -lr -summary FIMMAEventTraceSum.txt -report FIMMAEventTraceRpt.xml
2. tracerpt FIMMAETWtrace.etl -o FIMMAEventTrace.evtx -of EVTX -lr -summary FIMMAEventTraceSum.txt -report FIMMAEventTraceRpt.xml
3. tracerpt FIMMAETWtrace.etl -o FIMMAEventTrace.csv -of CSV -summary FIMMAEventTraceSum.txt -report FIMMAEventTraceRpt.xml
-->
<!--
Full Diagnostics configuration.
Uncomment the following section and replace the default <system.diagnostics> configuration to
enable all trace sources and obtain all available traces for Microsoft.ResourceManagement.Service
-->
<!--
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="Verbose"
propagateActivity="true">
<listeners>
<add name="ServiceModelTraceListener">
<filter type="" />
</add>
</listeners>
</source>
<source name="ForefrontIdentityManager.ManagementAgent" switchValue="Verbose">
<listeners>
<add initializeData="ForefrontIdentityManager.ManagementAgent" type="System.Diagnostics.EventLogTraceListener, System, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089"
name="ExceptionEventLogListener" traceOutputOptions="LogicalOperationStack, DateTime, Timestamp, Callstack">
<filter type="" />
</add>
<add name="ServiceModelTraceListener">
<filter type="" />
</add>
</listeners>
</source>
<source name="ForefrontIdentityManager.ManagementAgent.EventTracingForWindowsTraceSource" switchValue="Verbose">
<listeners>
<add name="EventTracingForWindowsListener"
type="System.Diagnostics.Eventing.EventProviderTraceListener, System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
initializeData="{C4D0C1D4-909D-481b-B011-10E682A6009C}" />
</listeners>
</source>
</sources>
<sharedListeners>
<add initializeData="ForefrontIdentityManager.ManagementAgent_tracelog.svclog"
type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
name="ServiceModelTraceListener" traceOutputOptions="LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack">
<filter type="" />
</add>
</sharedListeners>
<trace autoflush="true" />
</system.diagnostics>
-->
<!--
.NET Runtime startup configuration: If you use a .NET 4.0 runtime, the useLegacyV2RuntimeActivationPolicy attribute is required and must be set to "true".
When multiple versions of the runtime are listed, the first supportedRuntime element should specify the most preferred version of the runtime,
and the last element should specify the least preferred version.
Currently, the Synchronization Service supports the following runtime choices: v2.0.50727 and v4.0.30319. If selected, the version must be found in the \Windows\Microsoft.NET\Framework or \Windows\Microsoft.NET\Framework64 directories.
-->
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0.30319"></supportedRuntime>
<supportedRuntime version="v2.0.50727"></supportedRuntime>
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.MetadirectoryServicesEx" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="3.3.0.0" newVersion="4.0.1.0" />
<bindingRedirect oldVersion="4.0.0.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>