System.Runtime.InteropServices.COMException (0x80040154): Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))

fullstackvale 1 Reputation point
2021-06-18T11:22:34.6+00:00

Application: Windows form Application,
Server: 2016 windows server
Plateform: server 64 bit

Our Window form application is throwing following exception only on one server for specific feature to access on click of button(all other features are accessible and working fine on this same server for same application).

Note: Same winform application with all same feature are working fine on other two server(with same configuration).

Exception:
System.Runtime.InteropServices.COMException (0x80040154): Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
at System.Windows.Forms.UnsafeNativeMethods.CoCreateInstance(Guid& clsid, Object punkOuter, Int32 context, Guid& iid)
at System.Windows.Forms.AxHost.CreateWithLicense(String license, Guid clsid)
at System.Windows.Forms.AxHost.CreateInstanceCore(Guid clsid)
at System.Windows.Forms.AxHost.CreateInstance()
at System.Windows.Forms.AxHost.GetOcxCreate()
at System.Windows.Forms.AxHost.TransitionUpTo(Int32 state)
at System.Windows.Forms.AxHost.CreateHandle()
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.AxHost.EndInit()
at SOLVWorkSpace.frmSurLtp.InitializeComponent()
at SOLVWorkSpace.frmSurLtp..ctor()


Exception 1 Message:Exception has been thrown by the target of an invocation.
Stack trace:at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
at System.Activator.CreateInstance(Type type, Boolean nonPublic)
at System.Activator.CreateInstance(Type type)
at SOLVWorkSpace.utilities.openNonDuplicateForm(Type newForm, Form senderForm, Boolean openForm, String customWindowBarText, String priceListKey)
at SOLVWorkSpace.frmMdiMain.openForm_Click(Object sender, EventArgs e)
at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
at System.Windows.Forms.ToolStripButton.OnClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.ToolStrip.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Exception 2 Message:Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
Stack trace: at System.Windows.Forms.UnsafeNativeMethods.CoCreateInstance(Guid& clsid, Object punkOuter, Int32 context, Guid& iid)
at System.Windows.Forms.AxHost.CreateWithLicense(String license, Guid clsid)
at System.Windows.Forms.AxHost.CreateInstanceCore(Guid clsid)
at System.Windows.Forms.AxHost.CreateInstance()
at System.Windows.Forms.AxHost.GetOcxCreate()
at System.Windows.Forms.AxHost.TransitionUpTo(Int32 state)
at System.Windows.Forms.AxHost.CreateHandle()
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.AxHost.EndInit()
at SOLVWorkSpace.frmSurLtp.InitializeComponent()
at SOLVWorkSpace.frmSurLtp..ctor()

Kindly suggest any idea or clue why is it throwing.

Thanks in advance

Windows Forms
Windows Forms
A set of .NET Framework managed libraries for developing graphical user interfaces.
1,925 questions
{count} votes

2 answers

Sort by: Most helpful
  1. Dan Oyuga Anne 10 Reputation points
    2023-03-31T14:27:43.24+00:00

    There are many 64-bit projects in this case, and the project "target platform" build configuration needs to be modified to "x86".
    Thanks.

    2 people found this answer helpful.

  2. Michael Taylor 57,476 Reputation points
    2021-06-18T15:28:21.85+00:00

    Your SOLVWorkSpace.utilities.openNonDuplicateForm method is trying to dynamically create an instance of a type and the constructor call is failing. We have no way of knowing why this is failing so we cannot answer your question. Look at the code for the given method. Find where it is dynamically creating an instance of a type instead of using a regular new expression. This is the call that is failing. You can look at the InnerException property of the thrown exception and it will often give you the actual exception that triggered the call to fail and this will provide more information to you.

    Just guessing but since it is relying on dynamic creation instead of new then it is likely trying to load an assembly programmatically at runtime rather than having a compile time dependency. The assembly is either not being found or is the wrong version so the construction of the type fails. I would verify this by looking at the inner exception and then ensure that all the dependencies your code relies on is either in the application directory or installed (if you rely on third party products as well).


Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.