I am having a problem with COM+ Services.  I have this DLL that has a COM+ Package and everything works great.  I can go into one of the existing methods of the DLL and make as many changes as I need to and recompile the DLL and copy it over to the server and these change work without problems (Binary Compatibility is on on of course).
  The problem occurs when I need to add a new method to the DLL I add the new method to the DLL and test it on my machine everything works great.  Then I move it over to the server.  Since there is a new method I try and drag the DLL back onto the Components Folder of the package.  When I do this I get the following error.

DLLRegisterServer failed on Component install.

  After this point everything gets screwed up.  I have even made a backup copy of the DLL before copy over the one of the server and if I get this error and then try and use this backup copy I still get the error.  And now none of the other parts to the DLL is working.
  The only way to get things to work again is for me to recompile the DLL with No Compatibility and then delete the package and create a new one using this new DLL.
Who is Participating?
Computer101Connect With a Mentor Commented:
Placed in PAQ

E-E Moderator
Have you tried using regsvr32 /u beforehand?
After adding new methods, you need to compile the dll again as binary compatibility and then copy the dll into the package folder in the server.
Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

pcavacasAuthor Commented:
nigel:  No I don't unregister it first.  Do I need to?  I didn't think that you had to.  I didn't think that COM+ used the same type of registering as you got when you used regsvr.

madsin:  I am recompiling the DLL with Binary compatibility and then coping to the server.
It's usually a good idea to unregister the dll before copying a new one over.

Copy the new version to the server in a sub directory called \NEW.  STOP the current Service, Move the old version to a sub directory called \OLD.  Move the DLL in the \NEW folder to your working directory and restart the service.

Never directly whip out a service that works, unless you have a backup.

I'm working with COM under NT4 still. I don't generally use regsvr32 before I recompile. On the other hand all of the commponents are 'No compatibilty'. So, if I add a new class, I just have to redeclare the dll in MMC. It throws an error message as the other classes are already registered, but this has no effect.

There are times however, when the only solution is to...
Remove the components from MTS, resvr32 /u it, delete the dll from the hard disk, recompile the project and add it back to MTS. I assume that this is because MTS or some other thing has completely lost its marbles somewhere along the line.
News on this one?  Did it work?  I guess it did...
pcavacasAuthor Commented:
Dave sorry I was out the past couple of days.  I just tried that and I still got an error.
Hi pcavacas,
It appears that you have forgotten this question. I will ask Community Support to close it unless you finalize it within 7 days. I will ask a Community Support Moderator to:

    Refund points and save as a 0-pt PAQ.

pcavacas, Please DO NOT accept this comment as an answer.
EXPERTS: Post a comment if you are certain that an expert deserves credit.  Explain why.
DanRollins -- EE database cleanup volunteer
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.