Stopped-extension-dll-load Error with Extensible MA

I have created Extensible MA in visual studio 2010 and added .dll file to Extensions folder.  

I made sure that the file name is consistent through out the wizard.  

Also pulled in the latest Metadirectoryservicesex.dll and compiled and retried but it throws this error "stopped-extension-dll-load" in the status message.

I don't know why this is throwing this error message.

Any idea?

Thanks,


April 6th, 2012 12:40am

Could you check the Windows EventViewer for FIM-related errors and report them back here? This might help determining the cause of the error.

Regards,
Pieter.

Free Windows Admin Tool Kit Click here and download it now
April 6th, 2012 11:04am

Below is the event details provided by the FIM Synchronization Service:

The management agent "somename MA" failed on run profile "Full Import Run Profile". The run step stopped because a configured extension for this management agent could not be loaded.

 User Action
 Verify that the extension is located in the Extensions directory.

----

I have checked the extension is in the Extensions directory.

Please advise.

Thanks,

 
April 6th, 2012 3:24pm

Two questions:

1) Can you provide me with the extension code you are using?
2) What is the target framework? (.NET 2.0? 3.5? 4.0?). And what version of FIM are you using?
3) What is the target processor of your VS project? (x86 or x64)

Regards,
Pieter.

Free Windows Admin Tool Kit Click here and download it now
April 7th, 2012 12:39am

Hello Pieter,

1.) Unfortunately I can't provide the entire details but I am trying to sync pwds using IMAPasswordManagement.

I have a simple Client class and I implement the Interface IMAPasswordManagement to sync pwd.  

2.) Target Framework is ".NET Framework 4".

3.) Target processor for VS Project is x86

I hope that helps to debug.

Thanks,

Mitul

April 9th, 2012 5:16pm

.NET 4 extensions will only work with FIM 2010 Rollup 2 and later, and you must review miiservice.exe.config to ensure .NET v4 is a supportedRuntime.

You will also have other issues in play if the extension *must* run in 32-bit (x86) mode, w.r.t. MA in-process settings, but it's impossible to speculate on that based on the information given.

In addition, your extension MA might not implement all the requisite interfaces, or a compatible set of interfaces, but we'd need to see your code.

Free Windows Admin Tool Kit Click here and download it now
April 9th, 2012 7:42pm

using System;

using System.Collections.Generic;

using System.Linq; using System.Text; using System.ServiceModel; using System.ServiceModel.Channels; using System.DirectoryServices; using Core; using Microsoft.MetadirectoryServices; namespace pwdsync { class Client:IMAPasswordManagement { public static void Main(string[] args) { } public void BeginConnectionToServer(string connectTo, string user, string password) { throw new NotImplementedException(); } public void ChangePassword(CSEntry csentry, string OldPassword, string NewPassword) { User x = new User(); try { string UserDN = csentry.DN.ToString(); if ((UserDN != null) && (OldPassword != String.Empty) && (NewPassword != String.Empty)) { x.changeEEUserPassword(UserDN, OldPassword, NewPassword); } else { } } catch (Exception ex) { //TODO: Write Exceptions to Log files. System.Diagnostics.EventLog.WriteEntry("ChangePassword", "Change Password Method Threw" + ex.Message.ToString()); } } public void EndConnectionToServer() { throw new NotImplementedException(); } public ConnectionSecurityLevel GetConnectionSecurityLevel() { throw new NotImplementedException(); } public void RequireChangePasswordOnNextLogin(CSEntry csentry, bool fRequireChangePasswordOnNextLogin) { throw new NotImplementedException(); } public void SetPassword(CSEntry csentry, string NewPassword) { User x = new User(); string UserDN = csentry.DN.ToString(); if ((UserDN != null) && (NewPassword != String.Empty)) { x.changeEEUserPassword(UserDN, NewPassword); } else { //TODO: Write Exceptions to Log files. throw new Exception("One of the parameters was missing: UserDN or newpassword cannot be empty"); } } } }

Note: The user is a custom class I have created in an different file. I think I might have to create .dll by "Create Extension Projects"

and import all the code there.

April 9th, 2012 8:20pm

Hi,

In order to use password sync, you first need to be able to run a full import. For an extensible ma to be able to do that, you must implement the Imaextensiblefileimport interface. 

Please look at the following article:
http://technet.microsoft.com/en-us/library/cc720584(v=ws.10).aspx#Developing_the_Extensible_Management_Agent_DLL

Regards,
Pie
Free Windows Admin Tool Kit Click here and download it now
April 9th, 2012 10:25pm

I implemented IMExtensibleFileImport Interface and created all related Run Profiles but as soon as I do a Full Import Run on MA it is giving this error. 

"Stopped-extension-dll-no-implementation".  I have implemented the Interface in the same Password Sync extension project.  Now there are different methods associated with it.

This error happens in Import or Export Profile but not in Sync Profile. 

Please advice.

Mitul

April 12th, 2012 9:42pm

The class must also have "public" accessibility;  the default (which is what your class above is using, since it doesn't specify accessibility) is "private".

Are you trying to write a full extensible management agent, or just a password extension?  If the former, you must implement both import and export interfaces.

Free Windows Admin Tool Kit Click here and download it now
April 17th, 2012 11:52pm

Remove the 'throw new NotImplementedException();' statements where not needed.
April 30th, 2012 10:55pm

FYI, the sync profile doesn't have to load the extensible MA (because sync is not really related to import / export / password reset operations).

I was able to reproduce this problem on FIM2010 Rollup 2 by trying to load an ECMA1 MA built against the 4.0.0.0 (FIM 2010 R2 RC) version of MetadirectoryServicesEx.dll, running in-process; swapping to 4.0.1.0 and rebuilding cured the problem.  Note that the ECMA1 assembly *did* load and function anyway when running out-of-process.  I believe assembly binding redirects in the service's .config file would likely work as well.

In essence, the "can't load the DLL due to file permissions" error is a red herring; FIM can't load it due to dependent assembly version mismatches.

Free Windows Admin Tool Kit Click here and download it now
May 1st, 2012 12:15am

Sorry for updating this thread so late but I recently was able to figure out our issue.

1. "Stopped-dll-extension-load error" thing is related to .NET framework I changed from 4.0 to 3.5 and worked. I plan to install the rollup update.

2. ""Stopped-extension-dll-no-implementation" for our file based Management Agent. I was missing the interface "IMAExtensibleFileExport".

And for this related password sync issue with McAfee EPO here is another thread which I just updated.

http://social.technet.microsoft.com/Forums/en-US/ilm2/thread/0222c505-6e3a-4e7e-9481-7fbdef3ffc6e

Thanks everyone for helping out.

Mitul

May 30th, 2012 6:34pm

To add to this:
I solved it by setting platform target for the build to "Any CPU" instead of x86
Free Windows Admin Tool Kit Click here and download it now
August 30th, 2013 6:16am

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics