Groups | Blog | Home
all groups > dotnet ado.net > march 2008 >

dotnet ado.net : OracleClient, Oracle 10g, Connection failure


davebythesea
3/26/2008 2:55:00 AM
Hi,

I'm trying to connect to an Oracle database via a .NET web service running
in IIS on a Windows 2000 server.

I am using the OracleClient (System.Data.OracleClient) provider . When I
call connection.Open() I get the following error -

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

The Oracle 10 client is installed on the box as well as .NET framework V 2.0.

Any ideas as to why this is happening? Do I need to install something else?

Many thanks,
Paul Clement
3/26/2008 7:49:23 AM
[quoted text, click to view]

¤ Hi,
¤
¤ I'm trying to connect to an Oracle database via a .NET web service running
¤ in IIS on a Windows 2000 server.
¤
¤ I am using the OracleClient (System.Data.OracleClient) provider . When I
¤ call connection.Open() I get the following error -
¤
¤ 'System.Data.OracleClient requires Oracle client software version 8.1.7 or
¤ greater'
¤
¤ The Oracle 10 client is installed on the box as well as .NET framework V 2.0.
¤
¤ Any ideas as to why this is happening? Do I need to install something else?

See if the following helps:

From Oracle's MetaLink:


Problem Description
-------------------

When running an application using any of the following versions of the Oracle
client software for Windows

o Oracle9i Release 2 (9.2.0.1.0, 9.2.0.2.0, 9.2.0.3.0)
o Oracle10g Release 1 (10.1.0.2.0)
o Oracle10g Release 2 (10.2.0.1.0, 10.2.0.2.0) (see note below)

NOTE: If experiencing any of the errors below on Oracle10g Release 2 client
software please apply SOLUTION 2 ONLY. SOLUTION 1 does NOT apply in
this case.

and you attempt to connect to an Oracle database through an environment that
uses the "Authenticated User" group

NOTE: This typically occurs when running applications from inside
Microsoft's Internet Information Server (IIS) that connect to Oracle

and you are using any of these programmatic interfaces from your application

1. Oracle Provider for OLE DB
2. Microsoft OLE DB Provider for Oracle
3. Oracle ODBC Driver
4. Microsoft ODBC for Oracle
5. Oracle Objects for OLE (OO4O)
6. Microsoft .NET Framework Data Provider for Oracle
7. Oracle Data Provider for .NET (ODP.NET)

you may receive one of the following errors:


(1) Oracle Provider for OLE DB

(a) Error Type: Microsoft OLE DB Service Components (0x80070005)

Access is denied.


(b) OraOLEDB.Oracle Provider is not registered on the local machine


(c) SQL Server Enterprise Manager (Using a Linked Server)

Error 7311: Could not obtain the schema rowset from OLE DB provider
'UNKNOWN'. The provider supports the interface, but returns
failure code when it is used.

OLE DB error trace [OLE/DB Provider 'UNKNOWN'
IDBSSchemaRowset::GetRowset returned 0x80040e37: ].

(d) OLEDBException: TNS-12154: TNS could not resolve service name

(e) Run-time error '3706':

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


(2) Microsoft OLE DB Provider for Oracle

(a) Error Type: Microsoft OLE DB Provider for Oracle (0x80004005)

Oracle client and networking components were not found. These
components are supplied by Oracle Corporation and are part of the
Oracle Version 7.3.3 or later client software installation. Provider
is unable to function until these components are installed.


(b) Error Type: Microsoft OLE DB Provider for Oracle (0x80004005)

Oracle error occurred, but error message could not be retrieved
from Oracle.


(c) SQL Server Enterprise Manager (Using a Linked Server)

Error 7399: OLE DB Provider 'MSDAORA' reported an error.

OLE DB error trace [OLE/DB Provider 'MSDAORA'
IDBInitialize::Initialize returned 0x80004005: ].


(3) Oracle ODBC Driver

(a) Error Type: Microsoft OLE DB Provider for ODBC Drivers (0x80004005)

Specified driver could not be loaded due to system error 5 (Oracle
in OraHome92).

(b) Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Driver Manager] Data source name not found and
no default driver specified

(c) SQLSTATE: IM004
Native Error Code: 0
Driver Message: [Microsoft][ODBC Driver Manager] Driver's
SQLAllocHandle on SQL_HANDLE_ENV failed.


(4) Microsoft ODBC for Oracle

(a) The Oracle(tm) client and networking components were not found.
These components are supplied by Oracle Corporation and are part
of the Oracle Version 7.3 (or greater) client software installation.

You will be unable to use this driver until these components have
been installed.


(b) Error number: -2147467259

Error Description: [Microsoft][ODBC Driver Manager] Driver's
SQLAllocHandle on SQL_HANDLE_ENV failed


(5) Oracle Objects for OLE

(a) while using a GLOBAL.ASA file

Error Type: Active Server Pages (0x0)

An error occurred while creating object 'OraSession'.


(b) not using a GLOBAL.ASA file

Error Type: Microsoft VBScript runtime (0x800A0046)

Permission denied: 'CreateObject'


(6) Microsoft .NET Framework Data Provider for Oracle

(a) System.DllNotFoundException: Unable to load DLL (oci.dll).
at System.Data.OracleClient.DBObjectPool.GetObject(Boolean&
isInTransaction)
at System.Data.OracleClient.OracleConnectionPoolManager.
GetPooledConnection(String encryptedConnectionString,
OracleConnectionString options, Boolean& isInTransaction)
at System.Data.OracleClient.OracleConnection.OpenInternal
(OracleConnectionString parsedConnectionString, Object transact)
at System.Data.OracleClient.OracleConnection.Open()
at WCWSItemAvailability.ETAAvailability.SingleAvailability(String
ItemNumber, String BusinessUnit, Int32 OrderQty, Int32&
AvailableQty, Int32& OnHandQty, String& ETADate, Int32& Error)
at WCWSItemAvailability.ETAAvailability.XMLAvailability(String
XMLInput)

(b) Server Error in '<name>' Application.

Could not create an environment: OCIEnvCreate returned -1.

Description: An unhandled exception occurred during the execution of
the current web request. Please review the stack trace for more
information about the error and where it originated in the code.

Exception Details: System.Exception: Could not create an environment:
OCIEnvCreate returned -1.
Stack Trace:

[Exception: Could not create an environment: OCIEnvCreate returned
-1.]
System.Data.OracleClient.DBObjectPool.GetObject(Boolean&
isInTransaction) +467
System.Data.OracleClient.OracleConnectionPoolManager.
GetPooledConnection(String encryptedConnectionString,
davebythesea
3/27/2008 2:36:01 AM
Thanks Paul,

We managed to solve the problem here.

First we installed the .NET Managed Provider for Oracle. This allowed us to
make a connection to Oracle with a windows Forms test application running
locally on the server. However, when we tried to access Oracle via IIS (a web
page) it still gave the same error message.

So we then installed the MDAC 2.8 components and that did the trick.

Thanks,
Dav

[quoted text, click to view]
Tittle
4/16/2008 4:43:10 AM

There are no words to express how much your solution helped us. We've
been seeing one exception in .net and were not able to find out the
root cause of it. We had a new joinee in our team and he had Oracle
10G installed with .Net. At all other system the same application was
working, but it was not working on his system, we were not sure if it
is .Net specific error, or domain access issue or Oracle Issue. Your
solution really helped us and saved us many hours.

Thanks
AddThis Social Bookmark Button