c# PowerPoint Slide interop and office dll registry error - c#

I am in need of read a PPT/X PowerPoint File in C# code and display that in web form as image.
I did it using in VS 2013 C# .NET 4.0 and using dlls, Microsoft.office.interop.powerpoint.dll and Office.DLL.
It is working perfectly fine when running on local machine and working in local machine.
When I publish it on Azure Web Server or in Shared Server IIS,
I am ending up with
*
Error occurred: Retrieving the COM class factory for component with
CLSID {91493441-5A91-11CF-8700-00AA0060263B} failed due to the
following error: 80040154 Class not registered (Exception from
HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
*
I copied both DLLs into BIN folder.
Still no use.
Any idea how can i resolve this!!
Thanks in advance.

Just try enabling the fusion logs, it may be the case that your library is not signed and due to that your are getting this exception. Try disabling the strong name validation using sn -Vr

Related

Why does my app works on my computer but not on others

im doing an app in c# windowns form that register the entries of the employees with a biometric device. I did a setup and send to my other computer to test if it would work on another device. Everything works fine except the functionalities that work directly with the biometric device(remembering that works perfectly fine on my computer).
I already checked one by one every dll, and didnt noticed nothing missing.
The error is the following :
System.Runtime.InteropServices.COMException (0x80040154): Retrieving the COM class factory for component with CLSID {00853A19-BD51-419B-9269-2DABE57EB61F} failed due to the following error:
80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
Print of the error :
https://i.stack.imgur.com/x5vk2.png
This looks, you have the COM DLLs registered in your computer but not on the other computer. So naturally it would fail without making any change in the actual software you developed. SDK package usually has register.bat or something similar to that. Find it and run the batch file, then your software would work.

EmguCV: Unable to load DLL 'cvextern': The specified procedure could not be found

When publishing project to windows server 2003 (old test machine) I get following error when trying to call open cv functions.
Additional information: The type initializer for 'Emgu.CV.CvInvoke' threw an exception.Unable to load DLL 'cvextern': The specified procedure could not be found. (Exception from HRESULT: 0x8007007F)
I am using EmguCV 3.4.1 version with uploaded libraries:
vcruntime140.dll
opencv_ffmpeg341.dll
msvcp140.dll
cvextern.dll
concrt140.dll
To the Emgu package nothing extra (dll's) were added and on developer machine I could develop the application.
I keep wondering whether additional native dll's should be added. I downloaded binaries for 3.4.1 version. The files go like that:
opencv_core249.dll
opencv_highgui249.dll
Those two above where in 3.4.1 package. When i copied them to program directory it didn't help either.
What's more I have no idea how to track down the problem.
Process monitor doesn't show that the process is looking for something that cannot be loaded.
In the inner exception I am given only this exception: Unable to load DLL 'cvextern': The specified procedure could not be found. (Exception from HRESULT: 0x8007007F)
I had to install "Desktop Experience" feature on my server. Because server 2003 doesn't seem to have it, I had to move it to another server 2008 host.

What has to be done to resolve 80040154 Class not registered execption

I am facing the following error only when i try to run the project on a target machine
[ERROR] ExecuteTestScriptsOnSAP_GUI: Retrieving the COM class factory
for compo nent with CLSID {B90F32AD-859E-4EDD-BFAE-C9216849520C}
failed due to the foll owing error: 80040154 Class not registered
(Exception from HRESULT: 0x8004015 4 (REGDB_E_CLASSNOTREG)).
It seems to work fine on my development machine.
I am trying to launch SAP gui 7.40 from my project and it has a reference to Interop.SAPFEWSELib.dll
The above .dll file was built when sapfewse.ocx was first added as a dependency to the project.
Can anyone please guide me as to what can be done to resolve this issue?
I can't comment yet and so can only respond in an answer.
It could be that that the control sapfewse.ocx that you are consuming via Interop.SAPFEWSELib.dll is not registered on your target machine.
Check the registry HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID and locate the class for B90F32AD-859E-4EDD-BFAE-C9216849520C on your dev machine. The InProcServer32 key should tell you the path of the registered component. Ensure that this component is deployed and registered on your target machine.
Hope that points you in the right direction.
If you're on a 32bit OS machine then
"C:\Windows\System32\regsvr32.exe" /i "Path to OCX"
Or 64 bit then "C:\Windows\SysWOW64\regsvr32.exe"
If you double click the .ocx on the target machine, it should prompt you to select a program to complete the action with. Browse to the relevant regsvr32.exe and it will then register it for you.
But it looks as if your ocx comes from a third party SDK? as it resides in c:\program files (x86)\sap\frontend\sapgui\ on your dev machine. Have you installed this SDK on your target machine? If not.. do so and this will install and register the component for you.

How to register Microsoft.Office.Interop.Word on web server

My asp.net c# webforms site use the Microsoft.Office.Interop.Word
the project work fine local when i publish it to the server i get this message
Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-000000000046} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
Both developer computer and server are 64 bit
I try to put dll on bin folder in server - dosent work.

Reference Microsoft.Office.interop.access.dao.dll cause error C#

I have an application which connect to access 2003.
I'm facing a problem with insert bulk of rows to access, so i came to an solution by using DAO (Microsoft.Office.interop.access.dao.dll) to improve performance of this process as follow this link
Retrieving the COM class factory for component with CLSID {XXXX} failed due to the following error: 80040154
But when i open the connect to access by using
using DAO =Microsoft.Office.interop.access.dao.dll;
....
new DAO.DBEngine();
this line gave me an error:
System.Runtime.InteropServices.COMException (0x80040154): Retrieving the COM class factory for component with CLSID {CD7791B9-43FD-42C5-AE42-8DD2811F0419} failed due to the following error: 80040154
My application is 32 bit and i running the program in a machine with Win xp 32 bit too, It work fine until i start using DAO
I have try many thing that i came up when google, but nothing help, like this:
Error in create access database?
--
More info:
After install
AccessDatabaseEngine.exe
the problem go away, so i think it must be something like the dll can't register, and then after install the package, somehow it's registered DAO dll.
But i can't not install anything in production server, so i need a way to manual register the dll, or something like that, to let the application work without install AccessDatabaseEngine.exe package
Please give me any advice
WORKAROUND:
The possible workaround is modify your project's platform from 'Any CPU' to 'X86' (in Project's Properties, Build/Platform's Target)
ROOTCAUSE
The VSS Interop is a managed assembly using 32-bit Framework and the dll contains a 32-bit COM object. If you run this COM dll in 64 bit environment, you will get the error message.

Categories

Resources