MIIS 2003 Extensions

So I was helping out on a project involving MIIS 2003.  I needed to write a password extension to propagate password changes from Active Directory to a legacy SQL application.  It was obviously not working, but I couldn't tell why.  The Event Log would indicate the Password Change Notification Service (PCNS) sending out the change, then MIIS would attempt to send it to the appropriate management agent (using the password extension), but then it would show this error:

An unexpected error has occured during a password set operation.
 "BAIL: MMS(3240): passwordext.cpp(306): 0x80131509
BAIL: MMS(3240): passwordext.cpp(735): 0x80131509
BAIL: MMS(3240): export.cpp(5959): 0x80131509
BAIL: MMS(3240): export.cpp(6017): 0x80131509
BAIL: MMS(3240): ma.cpp(438): 0x80131509
BAIL: MMS(3240): ma.cpp(7135): 0x80131509
BAIL: MMS(3240): ma.cpp(7576): 0x80131509
Microsoft Identity Integration Server 3.1.1026.0"

Wow.  How useful!  A stacktrace of MIIS itself is going to help me how?!  I had logging in a number of places in my DLL (.NET 1.1, VB) but nothing ever got written out.  It could have been permissions preventing the logging, but that didn't explain why the extension itself didn't do anything.  I installed Visual Studio 2003 directly onto that Virtual PC image, but it wouldn't attach to the miisserver.exe process as recommended in the help topics.  After much pulling out of my hair, I came across this blog entry: http://idchaos.blogspot.com/2006/05/miis-strategy-interoperability-with.html.

Apparently MIIS 2003 will choose the highest .NET version when it runs.  Since I had both 1.1 and 2.0 installed on the machine, it was using 2.0 -- but, the extension was written with 1.1  I'm a bit confused why 2.0 wouldn't load a 1.1 assembly, but that was it.  I needed to add a config file for the server EXE to force it to use the 1.1 runtime.  Once I did that, everything magically worked!  All of my troubleshooting had been essentially wasted.  I had a working extension, it just never got loaded.  Sheesh.

As an aside, the referenced config file in that post isn't completely right.  You'll want to use this instead:

<?xml version="1.0"?>
<configuration>
    <startup>
        <supportedRuntime version="v1.1.4322" />
        <requiredRuntime version="v1.1.4322" />
    </startup>
</configuration>


It should be saved to a text file and copied to C:\Program Files\Microsoft Identity Integration Server\bin.  I hope this saves someone else some time and agony!

posted @ Thursday, July 20, 2006 7:12 AM

       Print
Comments have been closed on this topic.
«September»
SunMonTueWedThuFriSat
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789