Friday, September 08, 2006

Oracle Client Tools and the .NET System.Data.OracleClient dll

Remember next time you use OracleClient namespace. This dll depends on the Client Tools from Oracle, so that has to be installed in the server and the folder has to have the proper security settings.
If you get the error:


System.Data.OracleClient requires Oracle client software version 8.1.7 or greater.


and your tnsnames.ora file is fine, your connection strings look good, the client tools you have are for sure of a higher version than 8.1.7 then check the permissions of the folder where the Oracle Client Tools are installed.


Problem
When usign System.Data.OracleClient with Oracle9i client, i got the following message while connecting to the Oracle database from and ASP.NET application.

System.Data.OracleClient requires Oracle client software version 8.1.7 or greater.


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 again causes an error while the System.Data.OracleClient is communicating with the Oracle Connectivity software from an 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.

  • Log on to Windwos as a user with Administrator privileges.
  • Start Window Explorer and navigate to the ORACLE_HOME folder.
  • Choose properties on the ORACLE_HOME folder.
  • Click the “Security” tab of the “Properties” window.
  • Click on “Authenticated Users” item in the “Name” list.
  • Uncheck the “Read and Execute” box in the “Permissions” list under the “Allow” column.
  • Re-check the “Read and Execute” box under the “Allow” column
  • Click the “Advanced” button and in the “Permission Entries” verify that “Authenticated Users” are listed with permission = “Read & Execute”, and Apply To = “This folder, subfolders and files”. If not, edit that line and make sure that “Apply To” drop-down box is set to “This folder, subfolders and files”. This should already be set properly but it is important that you verify it.
  • Click the “Ok” button until you close out all of the security properties windows. The cursor may present the hour glass for a few seconds as it applies the permissions you just changed to all subfolders and files.
  • Reboot, to assure that the changes have taken effect.

Try your application again.







4 Comments:

Anonymous Anonymous said...

It works just fine.

Thanks a lot.

2:30 PM  
Blogger Lizet Pena de Sola said...

Glad it worked for you.

8:45 PM  
Blogger Anil Almeida said...

Hi,

I have a similar problem. The oracle connection works when I run the code in debug mode from VS 2005 (asp.net 2.0). But when I deploy the application it gives me the error - "System.Data.OracleClient requires Oracle client software version 8.1.7 or greater".

I am using SQL*Plus: Release 9.2.0.1.0 and connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0. Any suggestions on how to solve this.

1:13 AM  
Blogger Lizet Pena de Sola said...

It is my understanding that the Oracle Client version that you use on your development environment has to be the same version you have on your production environment. Did you check the Oracle Client Tools to see if you can connect to the production server using a tool such as SQL Navigator?

4:41 PM  

Post a Comment

<< Home