How to solve COM Exception Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))?





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







76















When I try to create a instance of a COM class it throws an exception as



Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))



Please suggest how could i solve it?










share|improve this question




















  • 1





    Can you give more detail with some code?

    – Xaisoft
    Sep 30 '09 at 5:18






  • 10





    There are two questions: 1.Did you install / register the COM component on the Windows 7 x64 machine? 2.What the target platform of your application, I think you should set the platform to x86, please do not set it as "Any CPU"? Please register the COM first and then run to test the application, please refer to the document: support.microsoft.com/kb/146219 and Explanation of Regsvr32 usage and error messages

    – JackWang
    Mar 27 '12 at 2:50











  • I solved it without changing the build target to 'x86'. Solution in the link : <stackoverflow.com/a/55513690/11310933>

    – Sunil Xtha
    Apr 4 at 10:57


















76















When I try to create a instance of a COM class it throws an exception as



Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))



Please suggest how could i solve it?










share|improve this question




















  • 1





    Can you give more detail with some code?

    – Xaisoft
    Sep 30 '09 at 5:18






  • 10





    There are two questions: 1.Did you install / register the COM component on the Windows 7 x64 machine? 2.What the target platform of your application, I think you should set the platform to x86, please do not set it as "Any CPU"? Please register the COM first and then run to test the application, please refer to the document: support.microsoft.com/kb/146219 and Explanation of Regsvr32 usage and error messages

    – JackWang
    Mar 27 '12 at 2:50











  • I solved it without changing the build target to 'x86'. Solution in the link : <stackoverflow.com/a/55513690/11310933>

    – Sunil Xtha
    Apr 4 at 10:57














76












76








76


11






When I try to create a instance of a COM class it throws an exception as



Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))



Please suggest how could i solve it?










share|improve this question
















When I try to create a instance of a COM class it throws an exception as



Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))



Please suggest how could i solve it?







c# vb.net






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Oct 6 '09 at 6:48







Jaswant Agarwal

















asked Sep 30 '09 at 5:12









Jaswant AgarwalJaswant Agarwal

2,15083346




2,15083346








  • 1





    Can you give more detail with some code?

    – Xaisoft
    Sep 30 '09 at 5:18






  • 10





    There are two questions: 1.Did you install / register the COM component on the Windows 7 x64 machine? 2.What the target platform of your application, I think you should set the platform to x86, please do not set it as "Any CPU"? Please register the COM first and then run to test the application, please refer to the document: support.microsoft.com/kb/146219 and Explanation of Regsvr32 usage and error messages

    – JackWang
    Mar 27 '12 at 2:50











  • I solved it without changing the build target to 'x86'. Solution in the link : <stackoverflow.com/a/55513690/11310933>

    – Sunil Xtha
    Apr 4 at 10:57














  • 1





    Can you give more detail with some code?

    – Xaisoft
    Sep 30 '09 at 5:18






  • 10





    There are two questions: 1.Did you install / register the COM component on the Windows 7 x64 machine? 2.What the target platform of your application, I think you should set the platform to x86, please do not set it as "Any CPU"? Please register the COM first and then run to test the application, please refer to the document: support.microsoft.com/kb/146219 and Explanation of Regsvr32 usage and error messages

    – JackWang
    Mar 27 '12 at 2:50











  • I solved it without changing the build target to 'x86'. Solution in the link : <stackoverflow.com/a/55513690/11310933>

    – Sunil Xtha
    Apr 4 at 10:57








1




1





Can you give more detail with some code?

– Xaisoft
Sep 30 '09 at 5:18





Can you give more detail with some code?

– Xaisoft
Sep 30 '09 at 5:18




10




10





There are two questions: 1.Did you install / register the COM component on the Windows 7 x64 machine? 2.What the target platform of your application, I think you should set the platform to x86, please do not set it as "Any CPU"? Please register the COM first and then run to test the application, please refer to the document: support.microsoft.com/kb/146219 and Explanation of Regsvr32 usage and error messages

– JackWang
Mar 27 '12 at 2:50





There are two questions: 1.Did you install / register the COM component on the Windows 7 x64 machine? 2.What the target platform of your application, I think you should set the platform to x86, please do not set it as "Any CPU"? Please register the COM first and then run to test the application, please refer to the document: support.microsoft.com/kb/146219 and Explanation of Regsvr32 usage and error messages

– JackWang
Mar 27 '12 at 2:50













I solved it without changing the build target to 'x86'. Solution in the link : <stackoverflow.com/a/55513690/11310933>

– Sunil Xtha
Apr 4 at 10:57





I solved it without changing the build target to 'x86'. Solution in the link : <stackoverflow.com/a/55513690/11310933>

– Sunil Xtha
Apr 4 at 10:57












19 Answers
19






active

oldest

votes


















40














It looks like whichever program or process you're trying to initialize either isn't installed on your machine, has a damaged installation or needs to be registered.



Either install it, repair it (via Add/Remove Programs) or register it (via Regsvr32.exe).



You haven't provided enough information for us to help you any more than this.






share|improve this answer





















  • 3





    Think you meant RegSvr32.exe (as oppose RegSrv32.exe).

    – windowsgm
    Apr 30 '13 at 14:08











  • Indeed I did @killianmcc, thanks.

    – Jay Riggs
    Apr 30 '13 at 18:26











  • Will a 32 bit dll work with a 64 bit server?

    – Suhail Gupta
    Jan 4 '16 at 7:36











  • @SuhailGupta see stackoverflow.com/a/9482952/1557027

    – Markus Köhler
    Jan 26 '16 at 12:54



















54














You need to make sure all of your assemblies are compiling for the correct architecture. Try changing the architecture for x86 if reinstalling the COM component doesn't work.






share|improve this answer


























  • This solved my process not finding the NAV 2009 R2 Client (ClassID 50000004-0000-1000-0001-0000836BD2D2).

    – Vincent Vancalbergh
    Jan 22 '18 at 13:55



















13














My problem and the solution



I have a 32 bit third party dll which i have installed in 2008 R2 machine which is 64 bit.



I have a wcf service created in .net 4.5 framework which calls the 32 bit third party dll for process. Now i have build property set to target 'any' cpu and deployed it to the 64 bit machine.



when i tried to invoke the wcf service got error "80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG"



Now i used ProcMon.exe to trace the com registry issue and identified that the process is looking for the registry entry at HKLMCLSID and HKCRCLSID where there is no entry.



Came to know that Microsoft will not register the 32 bit com components to the paths HKLMCLSID, HKCRCLSID in 64 bit machine rather it places the entry in HKLMWow6432NodeCLSID and HKCRWow6432NodeCLSID paths.



Now the conflict is 64 bit process trying to invoke 32 bit process in 64 bit machine which will look for the registry entry in HKLMCLSID, HKCRCLSID. The solution is we have to force the 64 bit process to look at the registry entry at HKLMWow6432NodeCLSID and HKCRWow6432NodeCLSID.



This can be achieved by configuring the wcf service project properties to target to 'X86' machine instead of 'Any'.



After deploying the 'X86' version to the 2008 R2 server got the issue "System.BadImageFormatException: Could not load file or assembly"



Solution to this badimageformatexception is setting the 'Enable32bitApplications' to 'True' in IIS Apppool properties for the right apppool.






share|improve this answer
























  • Please don't post identical answers to multiple questions. Post one good answer, then vote/flag to close the other questions as duplicates. If the question is not a duplicate, tailor your answers to the question.

    – kleopatra
    Sep 8 '15 at 14:59



















9














Also note that the class context when initializing can create that exception. If you have an object which is coded as INPROC_SERVER but you try to CoCreateInstance as CLSCTX_LOCAL_SERVER, you will also get that error.



You need to ensure the object is registered and the CoCreateInstance is creating an instance with the correct class context.






share|improve this answer
























  • Yep, if for instance you try to create DesktopWallpaper using CLSCTX_INPROC (instead of CLSCTX_ALL) you will get the 0x80040154 (REGDB_E_CLASSNOTREG) error.

    – user362515
    Jan 9 '16 at 22:25



















9














If you are using 64-bit COM components in a web application on IIS, make sure the application pool is set to not allow 32 bit applications (Enable 32-Bit Applications: false in advanced settings)






share|improve this answer































    4














    I got it to work by Enabling 32 bit applications in the Application Pool advanced settings. Right click on the application pool and choose advanced settings - enable 32 bit applications.
    This may help someone out there.






    share|improve this answer
























    • Same for me. A 32bit dll used on a 64bit dev machine, 64bit test and 64 bit live server. Worked fine on the dev box. When deployed to the test and live servers it failed until 32bit apps were allowed in the respective IIS App Pools and the pools restarted. I also had to turn off "Embed Interop Types" (a setting on the offending dll in VS) and set "Copy Local" = true to make sure the dll was actually copied in it's original form to the servers.

      – cymorg
      Jun 16 '16 at 23:59



















    3














    By registering the class (specifically its CLSID) -- see e.g. here.






    share|improve this answer
























    • Could it also be some object that needs to be installed on his machine or server, not necessarily a registration of the class.

      – Xaisoft
      Sep 30 '09 at 5:21











    • @Xaisoft, "installation" typically involves "registration", as the MSDN url I pointed to mentions.

      – Alex Martelli
      Sep 30 '09 at 5:24











    • That makes sense.

      – Xaisoft
      Sep 30 '09 at 5:25



















    2














    in my case



    my platform is x64



    the Dll library(sdk) and the redistributable package is x64



    so




    1. in the solution explorer navigate to your project


    2. open Properties


    3. change the Platform target from AnyCPU to x64



    enter image description here






    share|improve this answer































      2














      The way that I resolved this issue was to register the COM via regsvr32.



      ensure that the COM you are invoking is registered.



      My application was using xceedcry.dll and I was not registering it. Once I registered it, the application worked fine.






      share|improve this answer

































        1














        For me, I had to create 64 bit build configuration.






        share|improve this answer
























        • so helpful thanks

          – Basheer AL-MOMANI
          Jun 13 '16 at 13:55



















        1














        I had the same issue using MapWinGis.
        I found the solution, working on visual studio 2015 windows forms proyect, just right click on the proyect-> properties-> Build, set configuration to All configurations and in the conbobox "platform target" set it to x64.






        share|improve this answer
























        • lifesaver!!!! where do I send the check?

          – Owen Ivory
          Mar 28 at 16:46



















        0














        I ran into this issue calling a .Net assembly from a C++ client via COM. It turns out that one of the assemblies the .Net assembly depended on could not be found. I wrestled for a while trying to figure out what was wrong with the 1st assembly, but it was actually one of the 1st assembly's dependencies. I received two different errors when calling CoCreateInstance() from the C++ client. The first was:
        REGDB_E_CLASSNOTREG Class not registered
        And the second try was:
        0x80131040 : The located assembly's manifest definition does not match the assembly reference.



        So check that your assembly's references are present.
        I discovered this by browsing the 1st assembly with dotPeek and noticing one of it's references was missing. Placing the correct version of the dependency in the folder resolved both errors.






        share|improve this answer































          0














          I was compiling my application targeting any CPU and main problem turned out that adobe reader was installed older v10.x needs to upgrade v11.x, this is the way how I get to resolve this issue.






          share|improve this answer































            0














            My solution was to change the "Enable 32-Bit Applications" to True in the advanced settings of the relative app pool in IIS.



            App Pool



            Enable 32 bits applications






            share|improve this answer































              0














              I ran into the same issue using a COM class, i.e. 'Class not registered exception' at runtime. For me I was able to resolve by going to the app.config file and change the 'startup' and 'supportedRuntime' elements to something like:



              <configuration>
              <startup useLegacyV2RuntimeActivationPolicy="true">
              <supportedRuntime version="v4.0"/>
              </startup>
              </configuration>


              You can read more about the details here http://stackoverflow.com/questions/1604663/



              and here https://msdn.microsoft.com/en-us/library/w4atty68(v=vs.110).aspx



              I should note I am running Visual Studio 2017.
              Target cpu = x86
              Embed Interop Type = true (in the properties window)






              share|improve this answer

































                0














                In my case the class was registered properly and built in ANY CPU / 64 bit mode.



                But the Enable 32-bit Applications property of the IIS Application pool of the application which uses the class was set to True.



                Class was not found because of the architecture mismatch between the application pool configuration and the actual registered class.



                Setting Enable 32-bit Applications to False fixed the issue.
                IIS App Pool Settings






                share|improve this answer































                  0














                  go to the directory of .Net framework and register their the respective dll with Regsvr32.exe white space dll path.






                  share|improve this answer































                    0














                    I have faced the same issue. After done some research i found fix for me and it may useful. The issue is not only related to re-installation as of my observation, it depends on access permissions also.



                    Step 1: Repair the particular COM object.



                    Step 2: Component Services > Computers > My Computer > DCOM Config > Select your COM object > Right click > Properties > Security tab > Access Permissions > Choose Customize > Click EDIT > Select IIS_USER (If not exists create with complete rights) and give complete access and click OK.



                    Move to Identity tab > You can select "Interactive user" or "This user" > Click Apply and OK. If you choose "This user", we have to give Administrative privileged user to that server



                    Step 3: Open IIS Manager > Restart the Application Pools.



                    Note: If required please restart the server






                    share|improve this answer

































                      -1














                      Here find the solution, run mmc -32 tool (not dcomcfg)



                      On 64 bit system with 32 bit Office try this:



                      Start
                      Run
                      mmc -32
                      File
                      Add Remove Snap-in
                      Component Services
                      Add
                      OK
                      Console Root
                      Component Services
                      Computers
                      My Computer
                      DCOM Config
                      Microsoft Excel Application


                      enter image description here






                      share|improve this answer
























                        protected by Community Apr 4 at 11:18



                        Thank you for your interest in this question.
                        Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).



                        Would you like to answer one of these unanswered questions instead?














                        19 Answers
                        19






                        active

                        oldest

                        votes








                        19 Answers
                        19






                        active

                        oldest

                        votes









                        active

                        oldest

                        votes






                        active

                        oldest

                        votes









                        40














                        It looks like whichever program or process you're trying to initialize either isn't installed on your machine, has a damaged installation or needs to be registered.



                        Either install it, repair it (via Add/Remove Programs) or register it (via Regsvr32.exe).



                        You haven't provided enough information for us to help you any more than this.






                        share|improve this answer





















                        • 3





                          Think you meant RegSvr32.exe (as oppose RegSrv32.exe).

                          – windowsgm
                          Apr 30 '13 at 14:08











                        • Indeed I did @killianmcc, thanks.

                          – Jay Riggs
                          Apr 30 '13 at 18:26











                        • Will a 32 bit dll work with a 64 bit server?

                          – Suhail Gupta
                          Jan 4 '16 at 7:36











                        • @SuhailGupta see stackoverflow.com/a/9482952/1557027

                          – Markus Köhler
                          Jan 26 '16 at 12:54
















                        40














                        It looks like whichever program or process you're trying to initialize either isn't installed on your machine, has a damaged installation or needs to be registered.



                        Either install it, repair it (via Add/Remove Programs) or register it (via Regsvr32.exe).



                        You haven't provided enough information for us to help you any more than this.






                        share|improve this answer





















                        • 3





                          Think you meant RegSvr32.exe (as oppose RegSrv32.exe).

                          – windowsgm
                          Apr 30 '13 at 14:08











                        • Indeed I did @killianmcc, thanks.

                          – Jay Riggs
                          Apr 30 '13 at 18:26











                        • Will a 32 bit dll work with a 64 bit server?

                          – Suhail Gupta
                          Jan 4 '16 at 7:36











                        • @SuhailGupta see stackoverflow.com/a/9482952/1557027

                          – Markus Köhler
                          Jan 26 '16 at 12:54














                        40












                        40








                        40







                        It looks like whichever program or process you're trying to initialize either isn't installed on your machine, has a damaged installation or needs to be registered.



                        Either install it, repair it (via Add/Remove Programs) or register it (via Regsvr32.exe).



                        You haven't provided enough information for us to help you any more than this.






                        share|improve this answer















                        It looks like whichever program or process you're trying to initialize either isn't installed on your machine, has a damaged installation or needs to be registered.



                        Either install it, repair it (via Add/Remove Programs) or register it (via Regsvr32.exe).



                        You haven't provided enough information for us to help you any more than this.







                        share|improve this answer














                        share|improve this answer



                        share|improve this answer








                        edited Jul 24 '13 at 10:47









                        nawfal

                        43.9k36258304




                        43.9k36258304










                        answered Sep 30 '09 at 5:21









                        Jay RiggsJay Riggs

                        47.1k9118135




                        47.1k9118135








                        • 3





                          Think you meant RegSvr32.exe (as oppose RegSrv32.exe).

                          – windowsgm
                          Apr 30 '13 at 14:08











                        • Indeed I did @killianmcc, thanks.

                          – Jay Riggs
                          Apr 30 '13 at 18:26











                        • Will a 32 bit dll work with a 64 bit server?

                          – Suhail Gupta
                          Jan 4 '16 at 7:36











                        • @SuhailGupta see stackoverflow.com/a/9482952/1557027

                          – Markus Köhler
                          Jan 26 '16 at 12:54














                        • 3





                          Think you meant RegSvr32.exe (as oppose RegSrv32.exe).

                          – windowsgm
                          Apr 30 '13 at 14:08











                        • Indeed I did @killianmcc, thanks.

                          – Jay Riggs
                          Apr 30 '13 at 18:26











                        • Will a 32 bit dll work with a 64 bit server?

                          – Suhail Gupta
                          Jan 4 '16 at 7:36











                        • @SuhailGupta see stackoverflow.com/a/9482952/1557027

                          – Markus Köhler
                          Jan 26 '16 at 12:54








                        3




                        3





                        Think you meant RegSvr32.exe (as oppose RegSrv32.exe).

                        – windowsgm
                        Apr 30 '13 at 14:08





                        Think you meant RegSvr32.exe (as oppose RegSrv32.exe).

                        – windowsgm
                        Apr 30 '13 at 14:08













                        Indeed I did @killianmcc, thanks.

                        – Jay Riggs
                        Apr 30 '13 at 18:26





                        Indeed I did @killianmcc, thanks.

                        – Jay Riggs
                        Apr 30 '13 at 18:26













                        Will a 32 bit dll work with a 64 bit server?

                        – Suhail Gupta
                        Jan 4 '16 at 7:36





                        Will a 32 bit dll work with a 64 bit server?

                        – Suhail Gupta
                        Jan 4 '16 at 7:36













                        @SuhailGupta see stackoverflow.com/a/9482952/1557027

                        – Markus Köhler
                        Jan 26 '16 at 12:54





                        @SuhailGupta see stackoverflow.com/a/9482952/1557027

                        – Markus Köhler
                        Jan 26 '16 at 12:54













                        54














                        You need to make sure all of your assemblies are compiling for the correct architecture. Try changing the architecture for x86 if reinstalling the COM component doesn't work.






                        share|improve this answer


























                        • This solved my process not finding the NAV 2009 R2 Client (ClassID 50000004-0000-1000-0001-0000836BD2D2).

                          – Vincent Vancalbergh
                          Jan 22 '18 at 13:55
















                        54














                        You need to make sure all of your assemblies are compiling for the correct architecture. Try changing the architecture for x86 if reinstalling the COM component doesn't work.






                        share|improve this answer


























                        • This solved my process not finding the NAV 2009 R2 Client (ClassID 50000004-0000-1000-0001-0000836BD2D2).

                          – Vincent Vancalbergh
                          Jan 22 '18 at 13:55














                        54












                        54








                        54







                        You need to make sure all of your assemblies are compiling for the correct architecture. Try changing the architecture for x86 if reinstalling the COM component doesn't work.






                        share|improve this answer















                        You need to make sure all of your assemblies are compiling for the correct architecture. Try changing the architecture for x86 if reinstalling the COM component doesn't work.







                        share|improve this answer














                        share|improve this answer



                        share|improve this answer








                        edited Feb 28 '12 at 13:44









                        Matt Fenwick

                        32.5k14105174




                        32.5k14105174










                        answered Feb 28 '12 at 13:39









                        Andy FiedlerAndy Fiedler

                        54142




                        54142













                        • This solved my process not finding the NAV 2009 R2 Client (ClassID 50000004-0000-1000-0001-0000836BD2D2).

                          – Vincent Vancalbergh
                          Jan 22 '18 at 13:55



















                        • This solved my process not finding the NAV 2009 R2 Client (ClassID 50000004-0000-1000-0001-0000836BD2D2).

                          – Vincent Vancalbergh
                          Jan 22 '18 at 13:55

















                        This solved my process not finding the NAV 2009 R2 Client (ClassID 50000004-0000-1000-0001-0000836BD2D2).

                        – Vincent Vancalbergh
                        Jan 22 '18 at 13:55





                        This solved my process not finding the NAV 2009 R2 Client (ClassID 50000004-0000-1000-0001-0000836BD2D2).

                        – Vincent Vancalbergh
                        Jan 22 '18 at 13:55











                        13














                        My problem and the solution



                        I have a 32 bit third party dll which i have installed in 2008 R2 machine which is 64 bit.



                        I have a wcf service created in .net 4.5 framework which calls the 32 bit third party dll for process. Now i have build property set to target 'any' cpu and deployed it to the 64 bit machine.



                        when i tried to invoke the wcf service got error "80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG"



                        Now i used ProcMon.exe to trace the com registry issue and identified that the process is looking for the registry entry at HKLMCLSID and HKCRCLSID where there is no entry.



                        Came to know that Microsoft will not register the 32 bit com components to the paths HKLMCLSID, HKCRCLSID in 64 bit machine rather it places the entry in HKLMWow6432NodeCLSID and HKCRWow6432NodeCLSID paths.



                        Now the conflict is 64 bit process trying to invoke 32 bit process in 64 bit machine which will look for the registry entry in HKLMCLSID, HKCRCLSID. The solution is we have to force the 64 bit process to look at the registry entry at HKLMWow6432NodeCLSID and HKCRWow6432NodeCLSID.



                        This can be achieved by configuring the wcf service project properties to target to 'X86' machine instead of 'Any'.



                        After deploying the 'X86' version to the 2008 R2 server got the issue "System.BadImageFormatException: Could not load file or assembly"



                        Solution to this badimageformatexception is setting the 'Enable32bitApplications' to 'True' in IIS Apppool properties for the right apppool.






                        share|improve this answer
























                        • Please don't post identical answers to multiple questions. Post one good answer, then vote/flag to close the other questions as duplicates. If the question is not a duplicate, tailor your answers to the question.

                          – kleopatra
                          Sep 8 '15 at 14:59
















                        13














                        My problem and the solution



                        I have a 32 bit third party dll which i have installed in 2008 R2 machine which is 64 bit.



                        I have a wcf service created in .net 4.5 framework which calls the 32 bit third party dll for process. Now i have build property set to target 'any' cpu and deployed it to the 64 bit machine.



                        when i tried to invoke the wcf service got error "80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG"



                        Now i used ProcMon.exe to trace the com registry issue and identified that the process is looking for the registry entry at HKLMCLSID and HKCRCLSID where there is no entry.



                        Came to know that Microsoft will not register the 32 bit com components to the paths HKLMCLSID, HKCRCLSID in 64 bit machine rather it places the entry in HKLMWow6432NodeCLSID and HKCRWow6432NodeCLSID paths.



                        Now the conflict is 64 bit process trying to invoke 32 bit process in 64 bit machine which will look for the registry entry in HKLMCLSID, HKCRCLSID. The solution is we have to force the 64 bit process to look at the registry entry at HKLMWow6432NodeCLSID and HKCRWow6432NodeCLSID.



                        This can be achieved by configuring the wcf service project properties to target to 'X86' machine instead of 'Any'.



                        After deploying the 'X86' version to the 2008 R2 server got the issue "System.BadImageFormatException: Could not load file or assembly"



                        Solution to this badimageformatexception is setting the 'Enable32bitApplications' to 'True' in IIS Apppool properties for the right apppool.






                        share|improve this answer
























                        • Please don't post identical answers to multiple questions. Post one good answer, then vote/flag to close the other questions as duplicates. If the question is not a duplicate, tailor your answers to the question.

                          – kleopatra
                          Sep 8 '15 at 14:59














                        13












                        13








                        13







                        My problem and the solution



                        I have a 32 bit third party dll which i have installed in 2008 R2 machine which is 64 bit.



                        I have a wcf service created in .net 4.5 framework which calls the 32 bit third party dll for process. Now i have build property set to target 'any' cpu and deployed it to the 64 bit machine.



                        when i tried to invoke the wcf service got error "80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG"



                        Now i used ProcMon.exe to trace the com registry issue and identified that the process is looking for the registry entry at HKLMCLSID and HKCRCLSID where there is no entry.



                        Came to know that Microsoft will not register the 32 bit com components to the paths HKLMCLSID, HKCRCLSID in 64 bit machine rather it places the entry in HKLMWow6432NodeCLSID and HKCRWow6432NodeCLSID paths.



                        Now the conflict is 64 bit process trying to invoke 32 bit process in 64 bit machine which will look for the registry entry in HKLMCLSID, HKCRCLSID. The solution is we have to force the 64 bit process to look at the registry entry at HKLMWow6432NodeCLSID and HKCRWow6432NodeCLSID.



                        This can be achieved by configuring the wcf service project properties to target to 'X86' machine instead of 'Any'.



                        After deploying the 'X86' version to the 2008 R2 server got the issue "System.BadImageFormatException: Could not load file or assembly"



                        Solution to this badimageformatexception is setting the 'Enable32bitApplications' to 'True' in IIS Apppool properties for the right apppool.






                        share|improve this answer













                        My problem and the solution



                        I have a 32 bit third party dll which i have installed in 2008 R2 machine which is 64 bit.



                        I have a wcf service created in .net 4.5 framework which calls the 32 bit third party dll for process. Now i have build property set to target 'any' cpu and deployed it to the 64 bit machine.



                        when i tried to invoke the wcf service got error "80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG"



                        Now i used ProcMon.exe to trace the com registry issue and identified that the process is looking for the registry entry at HKLMCLSID and HKCRCLSID where there is no entry.



                        Came to know that Microsoft will not register the 32 bit com components to the paths HKLMCLSID, HKCRCLSID in 64 bit machine rather it places the entry in HKLMWow6432NodeCLSID and HKCRWow6432NodeCLSID paths.



                        Now the conflict is 64 bit process trying to invoke 32 bit process in 64 bit machine which will look for the registry entry in HKLMCLSID, HKCRCLSID. The solution is we have to force the 64 bit process to look at the registry entry at HKLMWow6432NodeCLSID and HKCRWow6432NodeCLSID.



                        This can be achieved by configuring the wcf service project properties to target to 'X86' machine instead of 'Any'.



                        After deploying the 'X86' version to the 2008 R2 server got the issue "System.BadImageFormatException: Could not load file or assembly"



                        Solution to this badimageformatexception is setting the 'Enable32bitApplications' to 'True' in IIS Apppool properties for the right apppool.







                        share|improve this answer












                        share|improve this answer



                        share|improve this answer










                        answered Sep 8 '15 at 14:47









                        WaheedWaheed

                        38635




                        38635













                        • Please don't post identical answers to multiple questions. Post one good answer, then vote/flag to close the other questions as duplicates. If the question is not a duplicate, tailor your answers to the question.

                          – kleopatra
                          Sep 8 '15 at 14:59



















                        • Please don't post identical answers to multiple questions. Post one good answer, then vote/flag to close the other questions as duplicates. If the question is not a duplicate, tailor your answers to the question.

                          – kleopatra
                          Sep 8 '15 at 14:59

















                        Please don't post identical answers to multiple questions. Post one good answer, then vote/flag to close the other questions as duplicates. If the question is not a duplicate, tailor your answers to the question.

                        – kleopatra
                        Sep 8 '15 at 14:59





                        Please don't post identical answers to multiple questions. Post one good answer, then vote/flag to close the other questions as duplicates. If the question is not a duplicate, tailor your answers to the question.

                        – kleopatra
                        Sep 8 '15 at 14:59











                        9














                        Also note that the class context when initializing can create that exception. If you have an object which is coded as INPROC_SERVER but you try to CoCreateInstance as CLSCTX_LOCAL_SERVER, you will also get that error.



                        You need to ensure the object is registered and the CoCreateInstance is creating an instance with the correct class context.






                        share|improve this answer
























                        • Yep, if for instance you try to create DesktopWallpaper using CLSCTX_INPROC (instead of CLSCTX_ALL) you will get the 0x80040154 (REGDB_E_CLASSNOTREG) error.

                          – user362515
                          Jan 9 '16 at 22:25
















                        9














                        Also note that the class context when initializing can create that exception. If you have an object which is coded as INPROC_SERVER but you try to CoCreateInstance as CLSCTX_LOCAL_SERVER, you will also get that error.



                        You need to ensure the object is registered and the CoCreateInstance is creating an instance with the correct class context.






                        share|improve this answer
























                        • Yep, if for instance you try to create DesktopWallpaper using CLSCTX_INPROC (instead of CLSCTX_ALL) you will get the 0x80040154 (REGDB_E_CLASSNOTREG) error.

                          – user362515
                          Jan 9 '16 at 22:25














                        9












                        9








                        9







                        Also note that the class context when initializing can create that exception. If you have an object which is coded as INPROC_SERVER but you try to CoCreateInstance as CLSCTX_LOCAL_SERVER, you will also get that error.



                        You need to ensure the object is registered and the CoCreateInstance is creating an instance with the correct class context.






                        share|improve this answer













                        Also note that the class context when initializing can create that exception. If you have an object which is coded as INPROC_SERVER but you try to CoCreateInstance as CLSCTX_LOCAL_SERVER, you will also get that error.



                        You need to ensure the object is registered and the CoCreateInstance is creating an instance with the correct class context.







                        share|improve this answer












                        share|improve this answer



                        share|improve this answer










                        answered Sep 30 '09 at 5:24









                        Andrew KeithAndrew Keith

                        6,65411938




                        6,65411938













                        • Yep, if for instance you try to create DesktopWallpaper using CLSCTX_INPROC (instead of CLSCTX_ALL) you will get the 0x80040154 (REGDB_E_CLASSNOTREG) error.

                          – user362515
                          Jan 9 '16 at 22:25



















                        • Yep, if for instance you try to create DesktopWallpaper using CLSCTX_INPROC (instead of CLSCTX_ALL) you will get the 0x80040154 (REGDB_E_CLASSNOTREG) error.

                          – user362515
                          Jan 9 '16 at 22:25

















                        Yep, if for instance you try to create DesktopWallpaper using CLSCTX_INPROC (instead of CLSCTX_ALL) you will get the 0x80040154 (REGDB_E_CLASSNOTREG) error.

                        – user362515
                        Jan 9 '16 at 22:25





                        Yep, if for instance you try to create DesktopWallpaper using CLSCTX_INPROC (instead of CLSCTX_ALL) you will get the 0x80040154 (REGDB_E_CLASSNOTREG) error.

                        – user362515
                        Jan 9 '16 at 22:25











                        9














                        If you are using 64-bit COM components in a web application on IIS, make sure the application pool is set to not allow 32 bit applications (Enable 32-Bit Applications: false in advanced settings)






                        share|improve this answer




























                          9














                          If you are using 64-bit COM components in a web application on IIS, make sure the application pool is set to not allow 32 bit applications (Enable 32-Bit Applications: false in advanced settings)






                          share|improve this answer


























                            9












                            9








                            9







                            If you are using 64-bit COM components in a web application on IIS, make sure the application pool is set to not allow 32 bit applications (Enable 32-Bit Applications: false in advanced settings)






                            share|improve this answer













                            If you are using 64-bit COM components in a web application on IIS, make sure the application pool is set to not allow 32 bit applications (Enable 32-Bit Applications: false in advanced settings)







                            share|improve this answer












                            share|improve this answer



                            share|improve this answer










                            answered Sep 12 '13 at 8:11









                            Matsen75Matsen75

                            343410




                            343410























                                4














                                I got it to work by Enabling 32 bit applications in the Application Pool advanced settings. Right click on the application pool and choose advanced settings - enable 32 bit applications.
                                This may help someone out there.






                                share|improve this answer
























                                • Same for me. A 32bit dll used on a 64bit dev machine, 64bit test and 64 bit live server. Worked fine on the dev box. When deployed to the test and live servers it failed until 32bit apps were allowed in the respective IIS App Pools and the pools restarted. I also had to turn off "Embed Interop Types" (a setting on the offending dll in VS) and set "Copy Local" = true to make sure the dll was actually copied in it's original form to the servers.

                                  – cymorg
                                  Jun 16 '16 at 23:59
















                                4














                                I got it to work by Enabling 32 bit applications in the Application Pool advanced settings. Right click on the application pool and choose advanced settings - enable 32 bit applications.
                                This may help someone out there.






                                share|improve this answer
























                                • Same for me. A 32bit dll used on a 64bit dev machine, 64bit test and 64 bit live server. Worked fine on the dev box. When deployed to the test and live servers it failed until 32bit apps were allowed in the respective IIS App Pools and the pools restarted. I also had to turn off "Embed Interop Types" (a setting on the offending dll in VS) and set "Copy Local" = true to make sure the dll was actually copied in it's original form to the servers.

                                  – cymorg
                                  Jun 16 '16 at 23:59














                                4












                                4








                                4







                                I got it to work by Enabling 32 bit applications in the Application Pool advanced settings. Right click on the application pool and choose advanced settings - enable 32 bit applications.
                                This may help someone out there.






                                share|improve this answer













                                I got it to work by Enabling 32 bit applications in the Application Pool advanced settings. Right click on the application pool and choose advanced settings - enable 32 bit applications.
                                This may help someone out there.







                                share|improve this answer












                                share|improve this answer



                                share|improve this answer










                                answered Apr 8 '16 at 23:14









                                YokyYoky

                                615816




                                615816













                                • Same for me. A 32bit dll used on a 64bit dev machine, 64bit test and 64 bit live server. Worked fine on the dev box. When deployed to the test and live servers it failed until 32bit apps were allowed in the respective IIS App Pools and the pools restarted. I also had to turn off "Embed Interop Types" (a setting on the offending dll in VS) and set "Copy Local" = true to make sure the dll was actually copied in it's original form to the servers.

                                  – cymorg
                                  Jun 16 '16 at 23:59



















                                • Same for me. A 32bit dll used on a 64bit dev machine, 64bit test and 64 bit live server. Worked fine on the dev box. When deployed to the test and live servers it failed until 32bit apps were allowed in the respective IIS App Pools and the pools restarted. I also had to turn off "Embed Interop Types" (a setting on the offending dll in VS) and set "Copy Local" = true to make sure the dll was actually copied in it's original form to the servers.

                                  – cymorg
                                  Jun 16 '16 at 23:59

















                                Same for me. A 32bit dll used on a 64bit dev machine, 64bit test and 64 bit live server. Worked fine on the dev box. When deployed to the test and live servers it failed until 32bit apps were allowed in the respective IIS App Pools and the pools restarted. I also had to turn off "Embed Interop Types" (a setting on the offending dll in VS) and set "Copy Local" = true to make sure the dll was actually copied in it's original form to the servers.

                                – cymorg
                                Jun 16 '16 at 23:59





                                Same for me. A 32bit dll used on a 64bit dev machine, 64bit test and 64 bit live server. Worked fine on the dev box. When deployed to the test and live servers it failed until 32bit apps were allowed in the respective IIS App Pools and the pools restarted. I also had to turn off "Embed Interop Types" (a setting on the offending dll in VS) and set "Copy Local" = true to make sure the dll was actually copied in it's original form to the servers.

                                – cymorg
                                Jun 16 '16 at 23:59











                                3














                                By registering the class (specifically its CLSID) -- see e.g. here.






                                share|improve this answer
























                                • Could it also be some object that needs to be installed on his machine or server, not necessarily a registration of the class.

                                  – Xaisoft
                                  Sep 30 '09 at 5:21











                                • @Xaisoft, "installation" typically involves "registration", as the MSDN url I pointed to mentions.

                                  – Alex Martelli
                                  Sep 30 '09 at 5:24











                                • That makes sense.

                                  – Xaisoft
                                  Sep 30 '09 at 5:25
















                                3














                                By registering the class (specifically its CLSID) -- see e.g. here.






                                share|improve this answer
























                                • Could it also be some object that needs to be installed on his machine or server, not necessarily a registration of the class.

                                  – Xaisoft
                                  Sep 30 '09 at 5:21











                                • @Xaisoft, "installation" typically involves "registration", as the MSDN url I pointed to mentions.

                                  – Alex Martelli
                                  Sep 30 '09 at 5:24











                                • That makes sense.

                                  – Xaisoft
                                  Sep 30 '09 at 5:25














                                3












                                3








                                3







                                By registering the class (specifically its CLSID) -- see e.g. here.






                                share|improve this answer













                                By registering the class (specifically its CLSID) -- see e.g. here.







                                share|improve this answer












                                share|improve this answer



                                share|improve this answer










                                answered Sep 30 '09 at 5:19









                                Alex MartelliAlex Martelli

                                636k12910461284




                                636k12910461284













                                • Could it also be some object that needs to be installed on his machine or server, not necessarily a registration of the class.

                                  – Xaisoft
                                  Sep 30 '09 at 5:21











                                • @Xaisoft, "installation" typically involves "registration", as the MSDN url I pointed to mentions.

                                  – Alex Martelli
                                  Sep 30 '09 at 5:24











                                • That makes sense.

                                  – Xaisoft
                                  Sep 30 '09 at 5:25



















                                • Could it also be some object that needs to be installed on his machine or server, not necessarily a registration of the class.

                                  – Xaisoft
                                  Sep 30 '09 at 5:21











                                • @Xaisoft, "installation" typically involves "registration", as the MSDN url I pointed to mentions.

                                  – Alex Martelli
                                  Sep 30 '09 at 5:24











                                • That makes sense.

                                  – Xaisoft
                                  Sep 30 '09 at 5:25

















                                Could it also be some object that needs to be installed on his machine or server, not necessarily a registration of the class.

                                – Xaisoft
                                Sep 30 '09 at 5:21





                                Could it also be some object that needs to be installed on his machine or server, not necessarily a registration of the class.

                                – Xaisoft
                                Sep 30 '09 at 5:21













                                @Xaisoft, "installation" typically involves "registration", as the MSDN url I pointed to mentions.

                                – Alex Martelli
                                Sep 30 '09 at 5:24





                                @Xaisoft, "installation" typically involves "registration", as the MSDN url I pointed to mentions.

                                – Alex Martelli
                                Sep 30 '09 at 5:24













                                That makes sense.

                                – Xaisoft
                                Sep 30 '09 at 5:25





                                That makes sense.

                                – Xaisoft
                                Sep 30 '09 at 5:25











                                2














                                in my case



                                my platform is x64



                                the Dll library(sdk) and the redistributable package is x64



                                so




                                1. in the solution explorer navigate to your project


                                2. open Properties


                                3. change the Platform target from AnyCPU to x64



                                enter image description here






                                share|improve this answer




























                                  2














                                  in my case



                                  my platform is x64



                                  the Dll library(sdk) and the redistributable package is x64



                                  so




                                  1. in the solution explorer navigate to your project


                                  2. open Properties


                                  3. change the Platform target from AnyCPU to x64



                                  enter image description here






                                  share|improve this answer


























                                    2












                                    2








                                    2







                                    in my case



                                    my platform is x64



                                    the Dll library(sdk) and the redistributable package is x64



                                    so




                                    1. in the solution explorer navigate to your project


                                    2. open Properties


                                    3. change the Platform target from AnyCPU to x64



                                    enter image description here






                                    share|improve this answer













                                    in my case



                                    my platform is x64



                                    the Dll library(sdk) and the redistributable package is x64



                                    so




                                    1. in the solution explorer navigate to your project


                                    2. open Properties


                                    3. change the Platform target from AnyCPU to x64



                                    enter image description here







                                    share|improve this answer












                                    share|improve this answer



                                    share|improve this answer










                                    answered Jun 13 '16 at 13:32









                                    Basheer AL-MOMANIBasheer AL-MOMANI

                                    7,02314866




                                    7,02314866























                                        2














                                        The way that I resolved this issue was to register the COM via regsvr32.



                                        ensure that the COM you are invoking is registered.



                                        My application was using xceedcry.dll and I was not registering it. Once I registered it, the application worked fine.






                                        share|improve this answer






























                                          2














                                          The way that I resolved this issue was to register the COM via regsvr32.



                                          ensure that the COM you are invoking is registered.



                                          My application was using xceedcry.dll and I was not registering it. Once I registered it, the application worked fine.






                                          share|improve this answer




























                                            2












                                            2








                                            2







                                            The way that I resolved this issue was to register the COM via regsvr32.



                                            ensure that the COM you are invoking is registered.



                                            My application was using xceedcry.dll and I was not registering it. Once I registered it, the application worked fine.






                                            share|improve this answer















                                            The way that I resolved this issue was to register the COM via regsvr32.



                                            ensure that the COM you are invoking is registered.



                                            My application was using xceedcry.dll and I was not registering it. Once I registered it, the application worked fine.







                                            share|improve this answer














                                            share|improve this answer



                                            share|improve this answer








                                            edited Jul 14 '16 at 22:28









                                            Ares

                                            2,77512128




                                            2,77512128










                                            answered Jul 14 '16 at 19:59









                                            CesarBCesarB

                                            13115




                                            13115























                                                1














                                                For me, I had to create 64 bit build configuration.






                                                share|improve this answer
























                                                • so helpful thanks

                                                  – Basheer AL-MOMANI
                                                  Jun 13 '16 at 13:55
















                                                1














                                                For me, I had to create 64 bit build configuration.






                                                share|improve this answer
























                                                • so helpful thanks

                                                  – Basheer AL-MOMANI
                                                  Jun 13 '16 at 13:55














                                                1












                                                1








                                                1







                                                For me, I had to create 64 bit build configuration.






                                                share|improve this answer













                                                For me, I had to create 64 bit build configuration.







                                                share|improve this answer












                                                share|improve this answer



                                                share|improve this answer










                                                answered May 31 '16 at 16:43









                                                joeyjoey

                                                2,2382329




                                                2,2382329













                                                • so helpful thanks

                                                  – Basheer AL-MOMANI
                                                  Jun 13 '16 at 13:55



















                                                • so helpful thanks

                                                  – Basheer AL-MOMANI
                                                  Jun 13 '16 at 13:55

















                                                so helpful thanks

                                                – Basheer AL-MOMANI
                                                Jun 13 '16 at 13:55





                                                so helpful thanks

                                                – Basheer AL-MOMANI
                                                Jun 13 '16 at 13:55











                                                1














                                                I had the same issue using MapWinGis.
                                                I found the solution, working on visual studio 2015 windows forms proyect, just right click on the proyect-> properties-> Build, set configuration to All configurations and in the conbobox "platform target" set it to x64.






                                                share|improve this answer
























                                                • lifesaver!!!! where do I send the check?

                                                  – Owen Ivory
                                                  Mar 28 at 16:46
















                                                1














                                                I had the same issue using MapWinGis.
                                                I found the solution, working on visual studio 2015 windows forms proyect, just right click on the proyect-> properties-> Build, set configuration to All configurations and in the conbobox "platform target" set it to x64.






                                                share|improve this answer
























                                                • lifesaver!!!! where do I send the check?

                                                  – Owen Ivory
                                                  Mar 28 at 16:46














                                                1












                                                1








                                                1







                                                I had the same issue using MapWinGis.
                                                I found the solution, working on visual studio 2015 windows forms proyect, just right click on the proyect-> properties-> Build, set configuration to All configurations and in the conbobox "platform target" set it to x64.






                                                share|improve this answer













                                                I had the same issue using MapWinGis.
                                                I found the solution, working on visual studio 2015 windows forms proyect, just right click on the proyect-> properties-> Build, set configuration to All configurations and in the conbobox "platform target" set it to x64.







                                                share|improve this answer












                                                share|improve this answer



                                                share|improve this answer










                                                answered Dec 22 '17 at 14:32









                                                Deydra ADeydra A

                                                111




                                                111













                                                • lifesaver!!!! where do I send the check?

                                                  – Owen Ivory
                                                  Mar 28 at 16:46



















                                                • lifesaver!!!! where do I send the check?

                                                  – Owen Ivory
                                                  Mar 28 at 16:46

















                                                lifesaver!!!! where do I send the check?

                                                – Owen Ivory
                                                Mar 28 at 16:46





                                                lifesaver!!!! where do I send the check?

                                                – Owen Ivory
                                                Mar 28 at 16:46











                                                0














                                                I ran into this issue calling a .Net assembly from a C++ client via COM. It turns out that one of the assemblies the .Net assembly depended on could not be found. I wrestled for a while trying to figure out what was wrong with the 1st assembly, but it was actually one of the 1st assembly's dependencies. I received two different errors when calling CoCreateInstance() from the C++ client. The first was:
                                                REGDB_E_CLASSNOTREG Class not registered
                                                And the second try was:
                                                0x80131040 : The located assembly's manifest definition does not match the assembly reference.



                                                So check that your assembly's references are present.
                                                I discovered this by browsing the 1st assembly with dotPeek and noticing one of it's references was missing. Placing the correct version of the dependency in the folder resolved both errors.






                                                share|improve this answer




























                                                  0














                                                  I ran into this issue calling a .Net assembly from a C++ client via COM. It turns out that one of the assemblies the .Net assembly depended on could not be found. I wrestled for a while trying to figure out what was wrong with the 1st assembly, but it was actually one of the 1st assembly's dependencies. I received two different errors when calling CoCreateInstance() from the C++ client. The first was:
                                                  REGDB_E_CLASSNOTREG Class not registered
                                                  And the second try was:
                                                  0x80131040 : The located assembly's manifest definition does not match the assembly reference.



                                                  So check that your assembly's references are present.
                                                  I discovered this by browsing the 1st assembly with dotPeek and noticing one of it's references was missing. Placing the correct version of the dependency in the folder resolved both errors.






                                                  share|improve this answer


























                                                    0












                                                    0








                                                    0







                                                    I ran into this issue calling a .Net assembly from a C++ client via COM. It turns out that one of the assemblies the .Net assembly depended on could not be found. I wrestled for a while trying to figure out what was wrong with the 1st assembly, but it was actually one of the 1st assembly's dependencies. I received two different errors when calling CoCreateInstance() from the C++ client. The first was:
                                                    REGDB_E_CLASSNOTREG Class not registered
                                                    And the second try was:
                                                    0x80131040 : The located assembly's manifest definition does not match the assembly reference.



                                                    So check that your assembly's references are present.
                                                    I discovered this by browsing the 1st assembly with dotPeek and noticing one of it's references was missing. Placing the correct version of the dependency in the folder resolved both errors.






                                                    share|improve this answer













                                                    I ran into this issue calling a .Net assembly from a C++ client via COM. It turns out that one of the assemblies the .Net assembly depended on could not be found. I wrestled for a while trying to figure out what was wrong with the 1st assembly, but it was actually one of the 1st assembly's dependencies. I received two different errors when calling CoCreateInstance() from the C++ client. The first was:
                                                    REGDB_E_CLASSNOTREG Class not registered
                                                    And the second try was:
                                                    0x80131040 : The located assembly's manifest definition does not match the assembly reference.



                                                    So check that your assembly's references are present.
                                                    I discovered this by browsing the 1st assembly with dotPeek and noticing one of it's references was missing. Placing the correct version of the dependency in the folder resolved both errors.







                                                    share|improve this answer












                                                    share|improve this answer



                                                    share|improve this answer










                                                    answered Aug 23 '16 at 15:27









                                                    Sean BSean B

                                                    7,98422134




                                                    7,98422134























                                                        0














                                                        I was compiling my application targeting any CPU and main problem turned out that adobe reader was installed older v10.x needs to upgrade v11.x, this is the way how I get to resolve this issue.






                                                        share|improve this answer




























                                                          0














                                                          I was compiling my application targeting any CPU and main problem turned out that adobe reader was installed older v10.x needs to upgrade v11.x, this is the way how I get to resolve this issue.






                                                          share|improve this answer


























                                                            0












                                                            0








                                                            0







                                                            I was compiling my application targeting any CPU and main problem turned out that adobe reader was installed older v10.x needs to upgrade v11.x, this is the way how I get to resolve this issue.






                                                            share|improve this answer













                                                            I was compiling my application targeting any CPU and main problem turned out that adobe reader was installed older v10.x needs to upgrade v11.x, this is the way how I get to resolve this issue.







                                                            share|improve this answer












                                                            share|improve this answer



                                                            share|improve this answer










                                                            answered Dec 13 '16 at 9:56









                                                            Anjan KantAnjan Kant

                                                            2,0792124




                                                            2,0792124























                                                                0














                                                                My solution was to change the "Enable 32-Bit Applications" to True in the advanced settings of the relative app pool in IIS.



                                                                App Pool



                                                                Enable 32 bits applications






                                                                share|improve this answer




























                                                                  0














                                                                  My solution was to change the "Enable 32-Bit Applications" to True in the advanced settings of the relative app pool in IIS.



                                                                  App Pool



                                                                  Enable 32 bits applications






                                                                  share|improve this answer


























                                                                    0












                                                                    0








                                                                    0







                                                                    My solution was to change the "Enable 32-Bit Applications" to True in the advanced settings of the relative app pool in IIS.



                                                                    App Pool



                                                                    Enable 32 bits applications






                                                                    share|improve this answer













                                                                    My solution was to change the "Enable 32-Bit Applications" to True in the advanced settings of the relative app pool in IIS.



                                                                    App Pool



                                                                    Enable 32 bits applications







                                                                    share|improve this answer












                                                                    share|improve this answer



                                                                    share|improve this answer










                                                                    answered Apr 19 '17 at 13:20









                                                                    AdrianAdrian

                                                                    47959




                                                                    47959























                                                                        0














                                                                        I ran into the same issue using a COM class, i.e. 'Class not registered exception' at runtime. For me I was able to resolve by going to the app.config file and change the 'startup' and 'supportedRuntime' elements to something like:



                                                                        <configuration>
                                                                        <startup useLegacyV2RuntimeActivationPolicy="true">
                                                                        <supportedRuntime version="v4.0"/>
                                                                        </startup>
                                                                        </configuration>


                                                                        You can read more about the details here http://stackoverflow.com/questions/1604663/



                                                                        and here https://msdn.microsoft.com/en-us/library/w4atty68(v=vs.110).aspx



                                                                        I should note I am running Visual Studio 2017.
                                                                        Target cpu = x86
                                                                        Embed Interop Type = true (in the properties window)






                                                                        share|improve this answer






























                                                                          0














                                                                          I ran into the same issue using a COM class, i.e. 'Class not registered exception' at runtime. For me I was able to resolve by going to the app.config file and change the 'startup' and 'supportedRuntime' elements to something like:



                                                                          <configuration>
                                                                          <startup useLegacyV2RuntimeActivationPolicy="true">
                                                                          <supportedRuntime version="v4.0"/>
                                                                          </startup>
                                                                          </configuration>


                                                                          You can read more about the details here http://stackoverflow.com/questions/1604663/



                                                                          and here https://msdn.microsoft.com/en-us/library/w4atty68(v=vs.110).aspx



                                                                          I should note I am running Visual Studio 2017.
                                                                          Target cpu = x86
                                                                          Embed Interop Type = true (in the properties window)






                                                                          share|improve this answer




























                                                                            0












                                                                            0








                                                                            0







                                                                            I ran into the same issue using a COM class, i.e. 'Class not registered exception' at runtime. For me I was able to resolve by going to the app.config file and change the 'startup' and 'supportedRuntime' elements to something like:



                                                                            <configuration>
                                                                            <startup useLegacyV2RuntimeActivationPolicy="true">
                                                                            <supportedRuntime version="v4.0"/>
                                                                            </startup>
                                                                            </configuration>


                                                                            You can read more about the details here http://stackoverflow.com/questions/1604663/



                                                                            and here https://msdn.microsoft.com/en-us/library/w4atty68(v=vs.110).aspx



                                                                            I should note I am running Visual Studio 2017.
                                                                            Target cpu = x86
                                                                            Embed Interop Type = true (in the properties window)






                                                                            share|improve this answer















                                                                            I ran into the same issue using a COM class, i.e. 'Class not registered exception' at runtime. For me I was able to resolve by going to the app.config file and change the 'startup' and 'supportedRuntime' elements to something like:



                                                                            <configuration>
                                                                            <startup useLegacyV2RuntimeActivationPolicy="true">
                                                                            <supportedRuntime version="v4.0"/>
                                                                            </startup>
                                                                            </configuration>


                                                                            You can read more about the details here http://stackoverflow.com/questions/1604663/



                                                                            and here https://msdn.microsoft.com/en-us/library/w4atty68(v=vs.110).aspx



                                                                            I should note I am running Visual Studio 2017.
                                                                            Target cpu = x86
                                                                            Embed Interop Type = true (in the properties window)







                                                                            share|improve this answer














                                                                            share|improve this answer



                                                                            share|improve this answer








                                                                            edited May 3 '17 at 21:00

























                                                                            answered May 3 '17 at 20:53









                                                                            Joseph MawerJoseph Mawer

                                                                            15339




                                                                            15339























                                                                                0














                                                                                In my case the class was registered properly and built in ANY CPU / 64 bit mode.



                                                                                But the Enable 32-bit Applications property of the IIS Application pool of the application which uses the class was set to True.



                                                                                Class was not found because of the architecture mismatch between the application pool configuration and the actual registered class.



                                                                                Setting Enable 32-bit Applications to False fixed the issue.
                                                                                IIS App Pool Settings






                                                                                share|improve this answer




























                                                                                  0














                                                                                  In my case the class was registered properly and built in ANY CPU / 64 bit mode.



                                                                                  But the Enable 32-bit Applications property of the IIS Application pool of the application which uses the class was set to True.



                                                                                  Class was not found because of the architecture mismatch between the application pool configuration and the actual registered class.



                                                                                  Setting Enable 32-bit Applications to False fixed the issue.
                                                                                  IIS App Pool Settings






                                                                                  share|improve this answer


























                                                                                    0












                                                                                    0








                                                                                    0







                                                                                    In my case the class was registered properly and built in ANY CPU / 64 bit mode.



                                                                                    But the Enable 32-bit Applications property of the IIS Application pool of the application which uses the class was set to True.



                                                                                    Class was not found because of the architecture mismatch between the application pool configuration and the actual registered class.



                                                                                    Setting Enable 32-bit Applications to False fixed the issue.
                                                                                    IIS App Pool Settings






                                                                                    share|improve this answer













                                                                                    In my case the class was registered properly and built in ANY CPU / 64 bit mode.



                                                                                    But the Enable 32-bit Applications property of the IIS Application pool of the application which uses the class was set to True.



                                                                                    Class was not found because of the architecture mismatch between the application pool configuration and the actual registered class.



                                                                                    Setting Enable 32-bit Applications to False fixed the issue.
                                                                                    IIS App Pool Settings







                                                                                    share|improve this answer












                                                                                    share|improve this answer



                                                                                    share|improve this answer










                                                                                    answered Sep 19 '17 at 17:49









                                                                                    Bhupinderjit DhanoaBhupinderjit Dhanoa

                                                                                    312




                                                                                    312























                                                                                        0














                                                                                        go to the directory of .Net framework and register their the respective dll with Regsvr32.exe white space dll path.






                                                                                        share|improve this answer




























                                                                                          0














                                                                                          go to the directory of .Net framework and register their the respective dll with Regsvr32.exe white space dll path.






                                                                                          share|improve this answer


























                                                                                            0












                                                                                            0








                                                                                            0







                                                                                            go to the directory of .Net framework and register their the respective dll with Regsvr32.exe white space dll path.






                                                                                            share|improve this answer













                                                                                            go to the directory of .Net framework and register their the respective dll with Regsvr32.exe white space dll path.







                                                                                            share|improve this answer












                                                                                            share|improve this answer



                                                                                            share|improve this answer










                                                                                            answered Dec 29 '17 at 11:57









                                                                                            Muhammad SaeedMuhammad Saeed

                                                                                            4419




                                                                                            4419























                                                                                                0














                                                                                                I have faced the same issue. After done some research i found fix for me and it may useful. The issue is not only related to re-installation as of my observation, it depends on access permissions also.



                                                                                                Step 1: Repair the particular COM object.



                                                                                                Step 2: Component Services > Computers > My Computer > DCOM Config > Select your COM object > Right click > Properties > Security tab > Access Permissions > Choose Customize > Click EDIT > Select IIS_USER (If not exists create with complete rights) and give complete access and click OK.



                                                                                                Move to Identity tab > You can select "Interactive user" or "This user" > Click Apply and OK. If you choose "This user", we have to give Administrative privileged user to that server



                                                                                                Step 3: Open IIS Manager > Restart the Application Pools.



                                                                                                Note: If required please restart the server






                                                                                                share|improve this answer






























                                                                                                  0














                                                                                                  I have faced the same issue. After done some research i found fix for me and it may useful. The issue is not only related to re-installation as of my observation, it depends on access permissions also.



                                                                                                  Step 1: Repair the particular COM object.



                                                                                                  Step 2: Component Services > Computers > My Computer > DCOM Config > Select your COM object > Right click > Properties > Security tab > Access Permissions > Choose Customize > Click EDIT > Select IIS_USER (If not exists create with complete rights) and give complete access and click OK.



                                                                                                  Move to Identity tab > You can select "Interactive user" or "This user" > Click Apply and OK. If you choose "This user", we have to give Administrative privileged user to that server



                                                                                                  Step 3: Open IIS Manager > Restart the Application Pools.



                                                                                                  Note: If required please restart the server






                                                                                                  share|improve this answer




























                                                                                                    0












                                                                                                    0








                                                                                                    0







                                                                                                    I have faced the same issue. After done some research i found fix for me and it may useful. The issue is not only related to re-installation as of my observation, it depends on access permissions also.



                                                                                                    Step 1: Repair the particular COM object.



                                                                                                    Step 2: Component Services > Computers > My Computer > DCOM Config > Select your COM object > Right click > Properties > Security tab > Access Permissions > Choose Customize > Click EDIT > Select IIS_USER (If not exists create with complete rights) and give complete access and click OK.



                                                                                                    Move to Identity tab > You can select "Interactive user" or "This user" > Click Apply and OK. If you choose "This user", we have to give Administrative privileged user to that server



                                                                                                    Step 3: Open IIS Manager > Restart the Application Pools.



                                                                                                    Note: If required please restart the server






                                                                                                    share|improve this answer















                                                                                                    I have faced the same issue. After done some research i found fix for me and it may useful. The issue is not only related to re-installation as of my observation, it depends on access permissions also.



                                                                                                    Step 1: Repair the particular COM object.



                                                                                                    Step 2: Component Services > Computers > My Computer > DCOM Config > Select your COM object > Right click > Properties > Security tab > Access Permissions > Choose Customize > Click EDIT > Select IIS_USER (If not exists create with complete rights) and give complete access and click OK.



                                                                                                    Move to Identity tab > You can select "Interactive user" or "This user" > Click Apply and OK. If you choose "This user", we have to give Administrative privileged user to that server



                                                                                                    Step 3: Open IIS Manager > Restart the Application Pools.



                                                                                                    Note: If required please restart the server







                                                                                                    share|improve this answer














                                                                                                    share|improve this answer



                                                                                                    share|improve this answer








                                                                                                    edited Sep 12 '18 at 13:23









                                                                                                    Eray Balkanli

                                                                                                    4,58852347




                                                                                                    4,58852347










                                                                                                    answered Sep 12 '18 at 13:01









                                                                                                    Pavan Kumar VempatiPavan Kumar Vempati

                                                                                                    1




                                                                                                    1























                                                                                                        -1














                                                                                                        Here find the solution, run mmc -32 tool (not dcomcfg)



                                                                                                        On 64 bit system with 32 bit Office try this:



                                                                                                        Start
                                                                                                        Run
                                                                                                        mmc -32
                                                                                                        File
                                                                                                        Add Remove Snap-in
                                                                                                        Component Services
                                                                                                        Add
                                                                                                        OK
                                                                                                        Console Root
                                                                                                        Component Services
                                                                                                        Computers
                                                                                                        My Computer
                                                                                                        DCOM Config
                                                                                                        Microsoft Excel Application


                                                                                                        enter image description here






                                                                                                        share|improve this answer






























                                                                                                          -1














                                                                                                          Here find the solution, run mmc -32 tool (not dcomcfg)



                                                                                                          On 64 bit system with 32 bit Office try this:



                                                                                                          Start
                                                                                                          Run
                                                                                                          mmc -32
                                                                                                          File
                                                                                                          Add Remove Snap-in
                                                                                                          Component Services
                                                                                                          Add
                                                                                                          OK
                                                                                                          Console Root
                                                                                                          Component Services
                                                                                                          Computers
                                                                                                          My Computer
                                                                                                          DCOM Config
                                                                                                          Microsoft Excel Application


                                                                                                          enter image description here






                                                                                                          share|improve this answer




























                                                                                                            -1












                                                                                                            -1








                                                                                                            -1







                                                                                                            Here find the solution, run mmc -32 tool (not dcomcfg)



                                                                                                            On 64 bit system with 32 bit Office try this:



                                                                                                            Start
                                                                                                            Run
                                                                                                            mmc -32
                                                                                                            File
                                                                                                            Add Remove Snap-in
                                                                                                            Component Services
                                                                                                            Add
                                                                                                            OK
                                                                                                            Console Root
                                                                                                            Component Services
                                                                                                            Computers
                                                                                                            My Computer
                                                                                                            DCOM Config
                                                                                                            Microsoft Excel Application


                                                                                                            enter image description here






                                                                                                            share|improve this answer















                                                                                                            Here find the solution, run mmc -32 tool (not dcomcfg)



                                                                                                            On 64 bit system with 32 bit Office try this:



                                                                                                            Start
                                                                                                            Run
                                                                                                            mmc -32
                                                                                                            File
                                                                                                            Add Remove Snap-in
                                                                                                            Component Services
                                                                                                            Add
                                                                                                            OK
                                                                                                            Console Root
                                                                                                            Component Services
                                                                                                            Computers
                                                                                                            My Computer
                                                                                                            DCOM Config
                                                                                                            Microsoft Excel Application


                                                                                                            enter image description here







                                                                                                            share|improve this answer














                                                                                                            share|improve this answer



                                                                                                            share|improve this answer








                                                                                                            edited Jun 28 '16 at 23:21









                                                                                                            LarsTech

                                                                                                            70.7k12109161




                                                                                                            70.7k12109161










                                                                                                            answered Jun 28 '16 at 22:55









                                                                                                            Martín MartínezMartín Martínez

                                                                                                            1




                                                                                                            1

















                                                                                                                protected by Community Apr 4 at 11:18



                                                                                                                Thank you for your interest in this question.
                                                                                                                Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).



                                                                                                                Would you like to answer one of these unanswered questions instead?



                                                                                                                Popular posts from this blog

                                                                                                                MongoDB - Not Authorized To Execute Command

                                                                                                                How to fix TextFormField cause rebuild widget in Flutter

                                                                                                                in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith