I know that 0X80110418 error is a pain — it stops COM+ applications cold, and the message about CLSIDs and IIDs not matching the DLL doesn't exactly tell you what to do. Let's fix it now.
The Quick Fix: Re-register and Re-import
- Open Component Services — Hit
Win + R, typedcomcnfg, press Enter. That opens the Component Services snap-in. - In the left pane, expand Component Services > Computers > My Computer > COM+ Applications.
- Find your problematic application (the one throwing the error). Right-click it and choose Shut down. If it's already stopped, skip this step.
- Now the key step: Right-click the application again and select Export. Save the application file (an .MSI file) to your desktop. Call it something like
MyAppBackup.msi. - Right-click the same application and choose Delete. Confirm the deletion.
- Open an Administrator Command Prompt: right-click Start, choose Command Prompt (Admin) or Terminal (Admin).
- Re-register the DLL that hosts the COM+ components. Run this command, replacing the path with your DLL's actual location:
Wait for the DllUnregisterServer succeeded message.regsvr32 /u "C:\Path\To\Your\Component.dll" - Now register it fresh:
You should see DllRegisterServer succeeded.regsvr32 "C:\Path\To\Your\Component.dll" - Go back to Component Services. Right-click COM+ Applications and choose New > Application.
- Select Install pre-built application, browse to your exported .MSI file, and import it.
- After import, right-click the application and click Start. The error should be gone.
After doing this, the CLSID and IID will match again because the registry has fresh entries from the re-registered DLL. The exported .MSI carries the correct component IDs.
Why This Happened
The COM+ catalog stores a snapshot of every component's CLSID and IID. If you update the DLL — say, from a patch or a manual copy — the new DLL might have different GUIDs. Or the old DLL might have been unregistered and replaced. The COM+ catalog still points to the old GUIDs. So when the application tries to instantiate a component, it asks for a CLSID that doesn't exist in the current DLL. That's 0X80110418.
Re-registering the DLL writes the new GUIDs into the registry. Exporting and re-importing the application forces the COM+ catalog to read those new GUIDs. End of mismatch.
Less Common Variations of This Issue
Multiple DLLs in the Same Application
If your COM+ app contains components from several DLLs, one might have been updated while others weren't. You'll need to re-register all the DLLs involved. Check the application's Components folder in Component Services — each component shows its DLL path. Re-register each one.
Corrupted COM+ Catalog
Sometimes the catalog itself gets corrupted. You can rebuild it without losing everything. Backup your applications first (export each one). Then in an Admin Command Prompt, run:
regsvr32 /u comsvcs.dll
Then:
regsvr32 comsvcs.dll
After that, re-import your exported applications one by one. This rewrites the catalog from scratch.
Permission Problems
If re-registration fails with access denied, you're not running the command as Administrator. That's the usual culprit. Another possibility: the DLL is locked by a running service. Reboot the machine, then run the steps again immediately after login — before any service that uses the DLL starts.
32-bit vs 64-bit Mismatch
If the COM+ application is set to run as a 32-bit process but the DLL is 64-bit (or vice versa), you'll get this error. Check the application's properties: under the Activation tab, look for the Application Root Directory. The bitness of that directory's system folder must match the DLL. Use regsvr32 from the correct SysWOW64 folder for 32-bit DLLs on a 64-bit system:
C:\Windows\SysWOW64\regsvr32 "C:\Path\To\32Bit.dll"
Preventing This Going Forward
Three things keep this error from coming back:
- Always use the COM+ export/import process when updating DLLs. Don't just copy a new DLL over the old one. Export the app, replace the DLL, re-register it, then delete and re-import the app. That's the only way the catalog stays in sync.
- Keep a backup of each COM+ application's export file. Store the .MSI somewhere safe. If the catalog gets wiped during a system restore or a bad patch, you can re-import in minutes.
- If you're deploying via Group Policy or SCCM, include the
regsvr32command and a COM+ export/import step in your script. Don't assume the new DLL will magically match the catalog.
That's it. Do those steps and this error won't bother you again.