5 Ответы Последний ответ: 25.05.2015 10:29, автор: 2955920

    Provider cannot be found. It may not be properly installed.

    dpcodi

      We are migrating our ASP.Net 4.0 Web Application to 12c and Windows Server 2012 64 bit platform. Part of the application is running Classic ASP and utilizing COM+ application that require us to run under the IIS Application Pool in 32 bit mode.

       

      We have done a side by side install of the 32 bit and 64 bit 12c client on the Server and now the Classic ASP application cannot find OraOLEDB.Oracle and the application pool is running under a 32 bit in IIS.

       

      We are receiving and error ADODB.Connection error '800a0e7a' Provider cannot be found. It may not be properly installed.


      The connection string ="Provider=OraOLEDB.Oracle;Data Source=PIIDB;USER ID=userid;PASSWORD=password" The environment path has the 64 bit home directory first as the install was done after the 32 bit client.

       

       

      Any help would be greatly appreciated.

        • 1. Re: Provider cannot be found. It may not be properly installed.
          Alex Keh - Product Manager-Oracle

          One of the features (or limitations) of COM is that you cannot have two COM components of the same name active at the same time. Since Oracle OLE DB is a COM component, it adheres to this principle.

           

          To accomplish the goal you have in mind, you will have to alternate which Oracle OLE DB instance is the "active" version as described here.

          • 2. Re: Provider cannot be found. It may not be properly installed.
            Raviraja-Oracle

            Hi,

             

            As of 10.1, OraOLEDB can now be installed into multiple Oracle homes simultaneously, but only a single version can be active at any given time due to the nature of COM objects in the registry. 

            To use a different version, the Oracle OLEDB provider dll (oraoledbXX.dll) must be re-registered via REGSVR32.exe,

            which renders the previous version inoperable.

            This is done automatically when switching homes via the OUI.

             

            Also OraOLEDB requires that the home it is installed to be first in the PATH environment variable as it loads OCI.dll based on the PATH, which may result in the wrong client libraries getting picked up.

             

            1)Open command prompt with "Run As Administrator" privileges.

             

            In the command window execute the following command to register the Oracle Provider for OLE DB:

             

            For 64-bit Oracle Client on 64-bit OS :

            ======================================

                set the PATH environment variable to <Oracle64BitHome>\bin

                regsvr32 <Oracle64BitHome>\bin\OraOLEDB11.dll

             

             

             

            For 32-bit Oracle Client on 64-bit OS

            ======================================

            set the PATH environment variable to <Oracle32BitHome>\bin

            C:\Windows\SysWOW64\regsvr32 <Oracle32BitHome>\bin\OraOLEDB11.dll

             

             

            Where <OracleXXBitHome> is the physical path to the Oracle home where the driver is installed.

             

            Regards,

            Ravi

            • 3. Re: Provider cannot be found. It may not be properly installed.
              dpcodi

              I have tried your suggestion rebooted server after change but have had no success.

               

              We are using the 12 C client ODP.Net the 64 bit installation was last.

               

              32 bit: C:\oracle\product\12.1.0\client_1\bin

              64 bit: C:\oracle\product\12.1.0\client_2\bin

               

              Path: C:\oracle\product\12.1.0\client_1\bin;C:\oracle\product\12.1.0\odac_1\bin;C:\oracle\product\12.1.0\odac_1;C:\oracle\product\12.1.0\odac_2;C:\oracle\product\12.1.0\odac_2\bin;C:\oracle\product\12.1.0\client_2\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\

               

              C:\Windows\SysWOW64\regsvr32 C:\oracle\product\12.1.0\client_1\bin\OraOLEDB12.dll.

               

              Still receiving message "Provider cannot be found. It may not be properly installed"

              • 4. Re: Provider cannot be found. It may not be properly installed.
                Raviraja-Oracle

                Hi,

                 

                Are you sure that you are running the 32-bit application after registering the 32-bit dll ?

                Check the process using task manager. If the process name contains *32 then you are running 32 bit processes on a 64 bit Windows.

                 

                Regards,

                Ravi

                • 5. Re: Re: Provider cannot be found. It may not be properly installed.
                  2955920

                  Thanks for your reply.

                      I saw the processes and they all are 32 bit process and my system is 64 bit.

                  Please see the screenshot I have attached with this.

                  Please let me know what should I do now?