Erratic behaviour of COM components after update

This has been one long day, I've been searching for a solution but still can't find one. Anyway, I have a web app (Classic asp) that uses a couple of vb6 com components (dlls) that are hosted in com+. If I do a full install of either (previous version or latest), the app works fine. If I update using wybuild the iis process for my app (w3wp.exe) hogs 50% cpu and just stays there. Reboots etc don't seem to solve it. However, 'sometimes' if I reinstall the main dll into com+ manually, it works. Note that I mention, sometimes. This doesn't work all the time. If I alter a few settings in com+ it sometimes works, again this doensn't work all the time.

So this is a long shot cause the updates have been working fine for my dll's so far only until the most recent build. Is there anything special that wybuild does for com dll's or any actions that impact authentication etc that I should know of? Or does wybuild check for com registration on the machine the update was built or does it not care? Cause I build my update on a win7 pc but the main setup is built on win2k3.

I'm kind of at the end of the line here.

CheersJohn

Hey John,

If wyUpdate fails to register or unregister a COM dll then it rolls back the update. Are you using the "Register COM" checkbox in wyBuild (see: How to register / unregister COM dlls)? Also are you implementing the "DllRegisterServer" and "DllUnregisterServer" functions in your DLLs?

Does the "DllUnregisterServer" function correctly remove all your previous registrations?

Have you experienced this problem before?

I don't use the 'Register COM' option in wybuild, I normally rely on COM+ to perform the registration since the app only works within COM+. I've not experienced this issue before but I'm beginning to suspect that somehow between these two builds, some registry entries have either been removed or have changed. If it is a problem with old com entries, would it be possible to have wybuild unregister the previous dll before installing the new one? or does the 'register com dll' option already do that?

John

Yes, you should use wyUpdate register/unregister ability. Also, the How to register / unregister COM dlls article tells you how to unregister previous versions (just have the checkbox checked in the old version within wyBuild -- wyBuild is smart enough to know it needs to be unregistered).

Hmmm... I'll try that and see if it fixes this issue. It's late here so I'll try tomorrow when I get to work.Thanks for your help.

John

Let this be a warning to anyone that is still in the dark ages of COM (like myself). Watch out for invalid com registry entries. Apparently the entries on the target pc, don't match the ones in the new dll, only solution was to re-register the dll, then run an app to register the dlls again in com+, since for some reason, the standard de-registration still left some bad entries, only the com+ installation sequence completely removes them. This is despite the fact that vb6 has assured me that 'binary compatibility' is on. 🤔

I have not tried to fix a problem like this in ages, I've lost so much hair these last few days. 😠

Thanks for your help, all is well now. John