Reputation:
I have a web site that I developed on Vista using Vb.net9. It makes a connection to Oracle. for the connection I use System.Data.OracleClient. It works fine on my machine, and our test server, but it does not work on the production server. We installed the Oracle Client 11 on the server. The error is System.Data.OracleClient requires Oracle client software version 8.1.7
We've tried, making a console app that opens the connection, connection runs fine, opens, displays a message and all is well there.
Then we make a simple web form, put it in the directory of the program, just a button, opens the connection, try..catch, grabs error, same error.
The console app was running under an Administrator, web site running under iwam. Is it possible that iwam has a different path?
Upvotes: 46
Views: 129331
Reputation: 4963
I've run into this error dozens of times:
Cause
Security permissions were not properly set when the Oracle client was installed on Windows with NTFS. The result of this is that content of the ORACLE_HOME
directory is not visible to Authenticated Users on the machine; this causes an error while the System.Data.OracleClient
is communicating with the Oracle Connectivity software from ASP.NET using Authenticated User privileges.
Solution
To fix the problem you have to give the Authenticated Users group privilege to the Oracle Home directory.
ORACLE_HOME
folder.ORACLE_HOME
folder.Try your application again.
Upvotes: 59
Reputation: 41
The author of this post (now deleted post) suggests checking your C:\Windows\System32
folder to make sure that the oci.dll
exists there. Copying in the file from the Oracle home directory solved this problem for me.
Upvotes: 4
Reputation: 7511
For me, the issue was some plugin in my Visual Studio started forcing my application into x64 64bit mode, so the Oracle driver wasn't being found as I had Oracle 32bit installed.
So if you are having this issue, try running Visual Studio in safemode (devenv /safemode). I could find that it was looking in SYSWOW64 for the ic.dll file by using the ProcMon app by SysInternals/Microsoft.
Update: For me it was the Telerik JustTrace product that was causing the issue, it was probably hooking in and affecting the runtime version somehow to do tracing.
Update2: It's not just JustTrace causing an issue, JustMock is causing the same processor mode issue. JustMock is easier to fix though: Click JustMock-> Disable Profiler and then my web app's oracle driver runs in the correct CPU mode. This might be fixed by Telerik in the future.
Upvotes: 0
Reputation: 8339
Oracle Client version 11 cannot connect to 8i databases. You will need a client in version 10 at most.
Upvotes: 1
Reputation: 24473
Why not use this: dotConnect for Oracle (formerly known as OraDirect .NET)?
It can be configured to not require an Oracle Client at all.
We have been using this in both Windows Services and ASP.NET Web Services and it works like a charm.
Upvotes: 0
Reputation: 5991
When we first moved over to Vista with Oracle 10g, we experienced this issue when we installed the Oracle client on our Vista boxes, even when we were running with admin privileges during install.
Oracle brought out a new version of the 10g client (10.2.0.3) that was Vista compatible.
I do believe that this was after 11g was released, so it is possible that there is a 'Vista compatible' version for 11g also.
Upvotes: 0
Reputation: 10684
Update 1: It is possible for different users to have different path. But its not the likely problem here. There is more chance that the user that the iwam user doesn't have permission to the oracle client directory.
Update 0: Its suppose to work. Check for environment variable ( That are needed to find the oracle client and tnsnames.ora ). Also, Maybe you have a 32/64 bit issues. Also, consider using the Oracle Data Provider for .NET ( search for odp.net)
Upvotes: 2