There are a number of reasons why you can get this error in Syspro:
Error
System.Web.Services.Protocols.SoapException: Server was unable to
process request. ---> System.Runtime.InteropServices.COMException:
Retrieving the COM class factory for component with CLSID
{FE41B1AD-0F2B-459C-9668-5FC6BBF093EE} failed due to the following error:
80040154 Class not registered (Exception from HRESULT: 0x80040154
(REGDB_E_CLASSNOTREG)).
at
SysproServices.utilitiesclass.Logon(String Operator, String OperatorPassword,
String CompanyId, String CompanyPassword, Language LanguageCode, LogDetail
LogLevel, Instance EncoreInstance, String XmlIn)
--- End of inner exception
stack trace ---
|
Encore.dll not registered
The CLSID, {FE41B1AD-0F2B-459C-9668-5FC6BBF093EE}, refers to Encore.DLL, which is a 32-bit DLL that should live under your Syspro base folder, e.g. C:\Syspro61\Base\Encore.dll.This DLL should be registered; you can register this by running an elevated command prompt and running these commands:
cd C:\Syspro61\Base
regsvr32 Encore.dll
Run as a 32-bit process
However, the problem usually happens when you run a 64-bit process and try to access Encore.dll, which is a 32-bit dll, because you can't mix 32-bit code with 64-bit code in the one process.Therefore, to talk to Syspro's E.Net BUsiness Objects, you may have to change your process so that it is a 32-bit process.
If you made your own program using Visual Studio to access Syspro via E.Net, then you can force your application to run as a 32-bit process using this procedure:
In Visual Studio, go to Tools / Options / Projects and Solutions / General and tick Show advanced build configurations as shown in the screen shot below.
Then go to Build / Configuration Manager, click on the options for Platform, go to New, add x86, and set the Platform to x86, as shown in the screen shot below. You should do this process for both the Debug and the Release configurations.
Then rebuild your application.
No comments:
Post a Comment