none
0x80230729 (The extension could not be loaded.) RRS feed

  • Question

  • Hi,

    I've been working on this most of the day without any luck. I'm wondering if anyone has seen something like this.

    PCNS can successfully deliver the password change to an AD target, so PCNS should be OK.

    The failure occurs when we add the Oracle EBS Web Service management agent to the password sync targets.

    The error message indicates that the Microsoft.IdentityManagement.WebService.MA.dll cannot be loaded due to an incorrect .NET framework version.

    An unexpected error has occurred during a password set operation.
     "BAIL: MMS(5080): d:\bt\9394412\private\source\miis\ma\core\passwordext.cpp(322): 0x80230729 (The extension could not be loaded.)
    ERR_: MMS(5080): d:\bt\9394412\private\source\miis\ma\core\passwordext.cpp(804): Please verify that the password extension dll can be located in the Extensions directory.
    If the extension is present, confirm that the version of the .NET framework that can run the extension is installed on the server and that a supportedRuntimes entry in the configuration files specifies that version. The synchronization engine will not be able to load an extension that is built with a newer version  of the .NET framework than the version of the .NET runtime it is hosting.BAIL: MMS(5080): d:\bt\9394412\private\source\miis\ma\core\passwordext.cpp(806): 0x80230729 (The extension could not be loaded.)
    BAIL: MMS(5080): d:\bt\9394412\private\source\miis\ma\extensible\export.cpp(2821): 0x80230729 (The extension could not be loaded.)
    BAIL: MMS(5080): d:\bt\9394412\private\source\miis\ma\extensible\export.cpp(2866): 0x80230729 (The extension could not be loaded.)
    BAIL: MMS(5080): d:\bt\9394412\private\source\miis\server\server\exportpassword.cpp(474): 0x80230729 (The extension could not be loaded.)
    BAIL: MMS(5080): d:\bt\9394412\private\source\miis\server\server\ma.cpp(7961): 0x80230729 (The extension could not be loaded.)
    BAIL: MMS(5080): d:\bt\9394412\private\source\miis\server\server\ma.cpp(8410): 0x80230729 (The extension could not be loaded.)
    Forefront Identity Manager 4.1.2273.0"

    I ran an Environment.Version command and it returns that we are using 4.0.30319.296.

    In the dllhost.exe.config file, we have the settings:

    <?xml version="1.0" encoding="UTF-16"?>
    <configuration>
    <configSections>
    <section name="resourceManagementClient" type="Microsoft.ResourceManagement.WebServices.Client.ResourceManagementClientSection, Microsoft.ResourceManagement"/>
    </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>

    <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>


    So, I think it looks like it should be trying to run the dll under the 4.0.30319 framework. The documentation says that framework is required and we are running it.

    The dll is in the Extensions folder.

    Has anyone seen this before or something like it? Any ideas on where else I could check?

    Thanks,

    Sami

    Thursday, February 28, 2013 7:11 PM

Answers

  • Adding the Microsoft.IdentityManagement.MA.WebServices DLLs to the GAC with the gacutil in the v7.0A\bin\NetFX 4.0 Tools directory got us beyond this error.
    • Marked as answer by SamiVV Saturday, March 2, 2013 2:44 PM
    Saturday, March 2, 2013 2:44 PM

All replies

  • Hi,

    are you running the management agent in a separate process? Could you try unchecking the box "Run this management agent in a separate process" in MA configuration and try again?

    I had same error when running the synchronization in custom management agent after updating to R2.

    Friday, March 1, 2013 11:45 AM
  • Thank you for your reply. We aren't running the management agent in a separate process.
    Friday, March 1, 2013 2:27 PM
  • If you're running in-proc, you would edit the miiserver.exe.config file. I've also seen this (or similar - I forget) if there is a bug in the constructor of the extension.


    My Book - Active Directory, 4th Edition
    My Blog - www.briandesmond.com

    Friday, March 1, 2013 4:59 PM
    Moderator
  • 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>

    Friday, March 1, 2013 7:46 PM
  • Adding the Microsoft.IdentityManagement.MA.WebServices DLLs to the GAC with the gacutil in the v7.0A\bin\NetFX 4.0 Tools directory got us beyond this error.
    • Marked as answer by SamiVV Saturday, March 2, 2013 2:44 PM
    Saturday, March 2, 2013 2:44 PM
  • I encountered a very similar error but when trying to configure the Windows Azure AD connector.  The install went fine but I got an error during config.

    In my case, it was two factors:  

    Error in the logs:

    Could not load file or assembly 'file:///C:\Program Files\Microsoft Forefront Identity Manager\2010\Synchronization Service\Extensions\Microsoft.IdentityManagement.MA.WebServices.dll' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.

    Solution:

    1.  .NET 4.0 runtime wasn't installed so I installed that.


    2.  In the miiserver.exe.config file the supportedRuntime needs to be re-ordered with v4.0 to be the first one.

    <startup useLegacyV2RuntimeActivationPolicy="true">    
        <supportedRuntime version="v4.0"></supportedRuntime>  
        <supportedRuntime version="v2.0.50727"></supportedRuntime>        
      </startup>

    Once I restarted the FIM Sync service, I was able to get the management agent configured.  Didn't need to GAC anything.


    • Edited by m_a_tt Friday, March 20, 2015 4:00 PM clarification
    Friday, March 20, 2015 3:58 PM