This content has been marked as final. Show 45 replies
I faced similar problem for a dotnet application. Tried all these steps. It worked only after reinstalling the Oracle Client.
I have been with the same problem.
- App with .NET Framework 1.1
- Oracle Database
- Running in Windows Server 2003
I tried all solutions described here...and nevertheless iit didn't work..
So, I just removed my Application from my server folder and I paste it again. I refreshed my browser and it works fine...
In 'bin' folder you must have to include the Oracle.DataAccess.dll and OraOps10.dll, otherwise it will not work.
After upgrading our Windows 2003 server we discovered that it installed a bad .dll
oraops10.dll. Our web app could not connect - the error stated 'unable to find entry point in oraops10.dll'. Looking at the new .dll the upgrade installed ,we noticed the version number was strange - 10.102.0003.000. We located a good .dll 10.2.0.2 and replaced the new one with the 10.2.0.2 version , restarted the server and the problem went away.
Am I correct to assume that your step #10 is for me to check on the checkbox that says "Replace permission entries on all child objects with entries shown here that apply to child objects" ?
• Oracle 184.108.40.206.0
• Oracle Data Provider for .NET 220.127.116.11.0 (from ODAC92070)
onto my Windows 2003 server.
When I execute my ASP.NET 2.0 program, I get this error:
Unable to load DLL '*OraOps10.dll*': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
Exception Details: System.DllNotFoundException: Unable to load DLL '*OraOps10.dll*': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
Do you know why I get this error when I did NOT install Oracle 10?
Any suggestions is greatly appreciated!
Apparently you're using an app that was compiled with 10g ODP. You can use an app with a newer version of ODP (via the policy files that install with the provider), but not an older one. You'd need to either install the same or higher version of ODP than the app was compiled with, or recompile the app with 9.2. but 9.2 odp was not certified with .NET 2 anyway.
And, regarding the steps to manually correct permissions, yes you need to apply the permission change to child objects as well. The better thing to do though is simply apply the latest patch for the version of your client, which will run a utility that will automatically fix the permissions issue.
Hope it helps,
Edited by: gdarling on Feb 16, 2009 5:36 PM
Actually, I may have mispoke. The error you're getting means that 10g ODP cant find 10g oraops. Apparently you have 10g odp on your box and it's getting picked up by the app. Perhaps your app was compiled with 10g and distibuted it as well, or maybe the app was compiled with 9.2 and due to policy files it's getting redirected to a 10g odp. Either way, its fairly safe to say you have 10g odp and it's getting picked up by the app.
Thanks for replying.
What are you referring to when you say "app"? I assume that you are not referring to my ASP.NET 2.0 application, since it cannot be compiled by Oracle.
I exported a database (schema) from Oracle 18.104.22.168.0 on an old server. On my second server, I installed the Oracle 22.214.171.124.0 database engine and then I imported the database (schema). Onto a third server, I installed ODP for .NET 126.96.36.199.0 to enable my ASP.NET 2.0 applicaton to connect to the Oracle database. Are you referring to Oracle 188.8.131.52.0, or the database or ODP for .NET as the "app"?
Maybe the policy files are redirecting to a 10g ODP. Is it possible to change these policy files? How do I find them?
Where do I get the latest patch for the client to fix the permission issue?
Also, as mentioned, I installed ODP for .NET (and my ASP.NET 2.0 application) onto my third server, which is on a different server than where I installed Oracle 184.108.40.206.0. Does this make a difference? Could this be causing the problem?
By "app" I'm referring to the ASP.NET box where ODP.NET is installed.
Is/was your app compiled on a different machine and deployed to this one? If so, what version was it compiled with, and does that box have 10.2 installed?
You can check to see what Oracle.DataAccess.dll is getting loaded, and from where, via tools like [Process Explorer|http://sysinternals.com] for example.
You'd only have 10.2 policy files if you installed 10.2 ODP/client, or the redirect could be occurring if your app.config/web.config has an entry redirecting to the newer version for some reason.
If you don't want the default policy files that ODP installs, you can just delete them from the GAC (Policy.10.2.Oracle.DataAccess for example), but your app would only run with the specific version of ODP it was compiled with in that case, unless you redirected via your app/web.config.
You get the latest patch for your client install via Metalink. For 9.2, the 220.127.116.11 patch is on Metalinnk as patch number 4547809 .
The ASP.NET 2.0 application was not compiled. The ASPX files are running in interpretted mode, and were copied from the old server which was running Oracle 9.
On my second server (with Oracle database), Process Explorer showed that the server is running:
Oracle MTS Recovery Service
Oracle Intelligent Agent Executable
Oracle RDBMS Kernel Executable
Are any of these related to Oracle 10? I cannot find anything that resembles Oracle 10.
On the third server (with ASP.NET 2.0 application), Process Explorer did not show anything loaded from Oracle.
I cannot find anything resembling Oracle 10 in my web.config. It has this:
<compilation debug="true" strict="true" explicit="true">
<add assembly="Oracle.DataAccess, Version=18.104.22.1680, Culture=neutral, PublicKeyToken=89B483F429C47342"/>
using Windows Explorer on the third server, I searched for "app.config". It did not find this file. However, it found many instances of PrecompiledApp.config, but none of them were in the domain set up for this ASP.NET 2.0 application.
Should I create an app.config file? If so, what is the source code to redirect to Oracle 9?
I tried to execute C:\gacutil.exe from a CMD window and it said that gacutil.exe is not recognized. How do I start and use GAC to delete Policy.10.2.Oracle.DataAccess ?
For the properties of C:\oracle\ora92 on my second server (with Oracle database), I added ASPNET user and IWAM user and gave them full control. For Authenticated User, I clicked off Read/Execute, applied, clicked on Read/Execute, applied. I clicked on the checkbox that says "Replace permission entries on all child objects with entries shown here that apply to child objects" and applied.
You only need to concern yourself with the ASP.NET box.
Use Process Explorer to search for processes using Oracle.DataAccess (use the find menu at the top). Set the bottom pane to show dll's, and also to include full PATH to the dll's.
Also search the box using regular windows OS search for all occurrences of Oracle.DataAccess.dll.
I'm pretty confident you'll find you have 10g laying around for some reason or other, and that's what's getting loaded by IIS. Perhaps it was already there before you installed 9i?
You can view/add/remove things to/from the gac by browsing with Windows Explorer to c:\windows\assembly. You can remove things from the gac (in this case, a policy file) by clicking it then hitting the delete key on your keyboard.
Hope it helps,
Thanks for your replies!
I used the Find menu and searched for Oracle.DataAccess. It found:
Process Type Handle or DLL
w3wp.exe 3260 DLL C:\WINDOWS\assembly\GAC\Oracle.DataAccess\10.2.0.100__89b483f429c47342\Oracle.DataAccess.dll
w3wp.exe 3260 Handle C:\WINDOWS\assembly\GAC\Oracle.DataAccess\10.2.0.100__89b483f429c47342\Oracle.DataAccess.dll
Using Windows Explorer to search for Oracle.DataAccess.dll, I found this:
I went to c:\windows\assembly and saw these:
Assembly Name Version Culture
Oracle.DataAccess.resources 10.2.0.100 pt-BR
Oracle.DataAccess.resources 10.2.0.100 it
Oracle.DataAccess.resources 10.2.0.100 fr
Oracle.DataAccess.resources 10.2.0.100 es
Oracle.DataAccess.resources 10.2.0.100 de
Should I simply delete all of the ones with Version 10.2.0.100 and leave just these two?:
Assembly Name Version Culture
If I do this, do I still need to create an app.config file or change my web.config file?
So, apparently you did have 10.2 ODP at one time, and now the policy files are pointing your 9.2 app to use the 10.2 ODP. However, apart from the GAC'd ODP, you dont have 10.2 anymore. So, assuming that is the case and you dont have 10.2 anymore (other than the GAC at least), you should be able to just delete all the 10.2 things from the gac, no web or app.config modification should be needed.
THANK YOU SO MUCH!!!
I deleted the Oracle 10 entries from c:\windows\assembly and now I don't get that error message anymore.
A very simple and quick fix -->
search OraOps.dll and copy it into your c:\..\oracle_home\bin.
I had the same problem with a .net window service I created.
In my developer machine everything worked but in others client machines with .net Framework installed, I always got the same error message.
I solved my problem by installing the Oracle Data Access Components (ODAC) on each client machine.
You can download DOAC from : http://www.oracle.com/technology/software/tech/windows/odpnet/index.html
Make sure you choose the right version and install it in a new Oracle home.
Just had this very same issue. Found this thread...
Without modifying any permissions we just rebooted the server and POOF it worked.
I should probably mention that we had Oracle 9i client and installed 10g client with ODP.Net.