We have a 2 COM DLLs that are built the same way for .NET 3.0
– one that fetches data from the database
– one that fetches data from a webservice
We have always registered the DLLs using RegAsm.exe with the following commands:
cd "C:\Program Files\Dispatcher\COM\Custom"
C:\Windows\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe MercatorRepositoryCOM.dll /tlb:MercatorRepositoryCOM.tlb /codebase
C:\Windows\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe MercatorUtilitiesCOM.dll /tlb:MercatorUtilitiesCOM.tlb /codebase
This works on most of our servers (Win2008R2 32b)
On our newest server the output says: registered successfully.
However, the application can access the MercatorUtilitiesCOM.dll but not the MercatorRepositoryCOM.dll.
We have tried registering the DLLs using RegAsm, regsvr32, regtlibv12 and even adding them to GAC.
Nothing works.
Is there any way we can troubleshoot this better than “(10092) ActiveX Automation: server cannot create object.”? IS there any other way to try and register these DLLs?
We tried adding logging to the DLL code but the log is never written so we can assume the DLL is not even called.
PS: We have no choice but to expose these as COM DLLs because we have a scanning/indexing application based on VB6 that needs to reference these. It is Dispatcher (for those who might know it).
UPDATE: After further investigation, it looks like DLL might be registered correctly after all.
When we unregister it, we get a clear message that Dispatcher can’t find the DLL reference. When we register it, Dispatcher opens and then throws the ActiveX Automation error.
So it seems the DLL has been registered correctly, but for some reason it can’t instantiate my class inside the DLL.
SOLUTION: The issue was unrelated to DLL registration after all. Apparently there had some been some internal changes in the application the launches Dispatcher. It used to spawn it als a subprocess so it could use the same app.config but they changed it to run as a separate process (it’s own executable). This meant that it could not find our configs and endpoints in the app.config. We created a separate app.config for the new executable and it works.
Thanks for all your help!
The issue was unrelated to DLL registration after all. Apparently there had some been some internal changes in the application that launches Dispatcher. It used to spawn it als a subprocess so it could use the same app.config but they changed it to run as a separate process (its own executable). This meant that it could not find our configs and endpoints in the app.config. We created a separate app.config for the new executable and it works.