Solved

32 bit Application  running in a bits windows server cannot be run from remote client, class not registered error

Posted on 2014-01-20
11
472 Views
Last Modified: 2014-01-21
From a windows 7 client, we try to open an application 32 bits installed in a 64 bits Windows 2008 Standard R2 server, the error we got is "class not registered", I saw this article http://www.gfi.com/blog/32bit-object-64bit-environment/   but not sure how to Locate the COM object GUID
0
Comment
Question by:jtsokanis
  • 4
  • 3
  • 3
  • +1
11 Comments
 
LVL 42

Expert Comment

by:pcelba
ID: 39795386
I am not sure if the workaround described in above link can work for you.  Where is the app running? On the 64 bit server or on 32 bit W7 client?

If the app is running on 32 bit client then you don't need to know all COM objects GUIDs. You just need to register all COM objects used by your application on every client which runs the application. The list of COM objects should tell the application vendor. Also if you install the app on the client then the Setup should register all necessary COM objects.

To find the COM object GUID is also easy when you know the COM object name or DLL used. You may simply search Registry for this name.
0
 
LVL 16

Expert Comment

by:vivigatt
ID: 39795511
Running "from a remote location" is still running locally.
You need to satisfy all of the .exe's dependencies (COM objects, DLLs etc) on the machine that runs said exe.
This means registering COM obbects, DLLs etc. on each machine that has to run the .EXE.
Usually, you "just" need to find the object(s) name(s) and register it(them) on the machine that has to run it(them) with the command regsvr32.
If the component is stored remotely, try to copy it locally first or to use its UNC (\\Server\Share\FolderPath\FileName).
0
 

Author Comment

by:jtsokanis
ID: 39795633
I already registered the dlls in the client and also in the server using  regsvr32 from windows\SysWOW64 for 32-bit libraries.
0
Use Case: Protecting a Hybrid Cloud Infrastructure

Microsoft Azure is rapidly becoming the norm in dynamic IT environments. This document describes the challenges that organizations face when protecting data in a hybrid cloud IT environment and presents a use case to demonstrate how Acronis Backup protects all data.

 
LVL 16

Expert Comment

by:vivigatt
ID: 39795666
how did you make sure you registered all the dependencies?
Can the application run OK on the server itself?
0
 
LVL 8

Expert Comment

by:Ratnesh Mishra
ID: 39795723
Going not in details ,how running any application on 32 bit or 64 bit architecture is different or how locally running application and application running in RDP session is different . I will be answering straight forward answer to your question " how to Locate the COM object GUID" , the answer is very simple, GUID is either mentioned on the pop up message or if you can found the same error message in event viewer application logs .

I am also not sure whether it will work for you or not . However I understood your query was answered.
0
 
LVL 16

Expert Comment

by:vivigatt
ID: 39795732
BTW, are your Win7 "remote" clients x64 or x86 (32bits) clients?
0
 

Author Comment

by:jtsokanis
ID: 39795829
The server runs the application without no problem. Clients are 32bits, I tried in a 64 bits server  and it doesn´t work, it get the same error.
The event viewer doens´t show the error.
0
 
LVL 42

Expert Comment

by:pcelba
ID: 39796316
Hmm... It seems you are not talking the truth :-)

"Clients are 32bits"  vs. "I already registered the dlls in the client and also in the server using  regsvr32 from windows\SysWOW64 for 32-bit libraries. " 

Where did you find the SysWOW64 folder on 32 bit clients?

So either you did not register it at all or some DLL is still not registered or the client is 64 bit...

But if you know the DLL names I can answer your question now:
1) Open the Regedit.EXE
2) Press CTRL-F
3) Enter the DLL name and try to find it
4) The GUID is either the parent registry key name or the contents of the TypeLibId key.

You should look for all occurrences of the DLL name in the Registry.
If you don't find the DLL name then it is not registered.
0
 

Author Comment

by:jtsokanis
ID: 39797527
I copied the dlls the program uses to the 32bits clients and registered all of them, I also copied the dlls in to the server folder SysWOW64  and registered.

I look into the regedit for the dlls and each of them has a diferent GUID, should I do the steps below for each dll?
-Locate your COM object GUID under the HKey_Classes_Root\Wow6432Node\CLSID\[GUID]
-Once located add a new REG_SZ (string) Value. Name should be AppID and data should be the same COM object GUID you have just searched for
-Add a new key under HKey_Classes_Root\Wow6432Node\AppID\
-The new key should be called the same as the com object GUID
-Under the new key you just added, add a new REG_SZ (string) Value, and call it DllSurrogate. Leave the value empty
-Create a new Key under HKey_Local_Machine\Software\Classes\AppID\
-Again the new key should be called the same as the COM object’s GUID. No values are necessary to be added under this key.
0
 
LVL 42

Accepted Solution

by:
pcelba earned 500 total points
ID: 39797562
Yes, but this should be done on 64 bit clients only.  

And remember the fact mentioned in the discussion under link from your question: This does not ensure 100% functionality.

Possible reason why COM object does not work is missing dependent DLL which is not necessary to register. To review all dependences is also not trivial because each DLL has many dependences obviously. You may download Dependency Walker software from Microsoft and check it.

The worst case is bad dependent DLL version...
0
 

Author Comment

by:jtsokanis
ID: 39797974
I ran the Dependency Walker software it shows these errors:
Warning: At least one delay-load dependency module was not found.
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.
i will contact the provider.

Thanks
0

Featured Post

Salesforce Made Easy to Use

On-screen guidance at the moment of need enables you & your employees to focus on the core, you can now boost your adoption rates swiftly and simply with one easy tool.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

INTRODUCTION The purpose of this document is to demonstrate the Installation and configuration of the Data Protection Manager product. Note that this demonstration was prepared on the basis of Windows OS is 2008 R2 and DPM 2010. DATA PROTECTI…
We were having a lot of "Heartbeat Alerts" in our SCOM environment, now "Heartbeat" in a SCOM environment for those of you who might not be familiar with SCOM is a packet of data sent from the agent to the management server on a regular basis, basic…
The viewer will learn how to create a normally distributed random variable in Excel, use a normal distribution to simulate the return on an investment over a period of years, Create a Monte Carlo simulation using a normal random variable, and calcul…
With the advent of Windows 10, Microsoft is pushing a Get Windows 10 icon into the notification area (system tray) of qualifying computers. There are many reasons for wanting to remove this icon. This two-part Experts Exchange video Micro Tutorial s…

828 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question