C
Chris Fink
I have written a library class which makes calls to an Oracle 8i database.
I am using the ODP.NET data provider which is in turn making calls to the
\oracleclientdirectory\bin\Oracle.DataAccess.dll which was added as a
reference to my library class. Everything in this class works fine.
Now, when I add this library class as a reference in a webservice project I
am receiving an error in the library class method (which worked when tested
alone). This error is "cannot find OraOps9.dll" which is located in the
\oracleclientdirectory\bin\ directory. In debugging this from the library
class, I have discovered that when I remove/unregister the OraOps9.dll file
from the \oracleclientdirectory\bin\ directory the library class will have
the same error.
So this is strictly a reference/pointer issue and the main problem is that
the webservice does not have visibility to the OraOps9.dll when making calls
through the referenced library class, but....the library class does since it
works when tested alone. The funny thing is that I can't add the
OraOps9.dll as a reference but it is a required dll for the
Oracle.DataAccess.dll to function since when it is removed it does not work.
Clearly, Oracle.DataAccess.dll makes internal calls to OraOps9.dll and
somewhere this pointer is being mixed up when I try to call my library
class.
I guess my next step is to register the library class in the GAC and see if
this reference problem is fixed. I have made calls to library classes
before that are not installed in the GAC and have not run into this problem,
but none of them involved oracle calls.
I did try to add the OraOps9.dll as a reference in both projects but was
unable to since it said that it was not a valid dll or COM class and could
not be added. Clearly, it is a dll and is working since when it was missing
the library class would not function, it would give the same error "cannot
find OraOps9.dll" .
These problems are so hard to explain. Any assistance is appreciated.
I am using the ODP.NET data provider which is in turn making calls to the
\oracleclientdirectory\bin\Oracle.DataAccess.dll which was added as a
reference to my library class. Everything in this class works fine.
Now, when I add this library class as a reference in a webservice project I
am receiving an error in the library class method (which worked when tested
alone). This error is "cannot find OraOps9.dll" which is located in the
\oracleclientdirectory\bin\ directory. In debugging this from the library
class, I have discovered that when I remove/unregister the OraOps9.dll file
from the \oracleclientdirectory\bin\ directory the library class will have
the same error.
So this is strictly a reference/pointer issue and the main problem is that
the webservice does not have visibility to the OraOps9.dll when making calls
through the referenced library class, but....the library class does since it
works when tested alone. The funny thing is that I can't add the
OraOps9.dll as a reference but it is a required dll for the
Oracle.DataAccess.dll to function since when it is removed it does not work.
Clearly, Oracle.DataAccess.dll makes internal calls to OraOps9.dll and
somewhere this pointer is being mixed up when I try to call my library
class.
I guess my next step is to register the library class in the GAC and see if
this reference problem is fixed. I have made calls to library classes
before that are not installed in the GAC and have not run into this problem,
but none of them involved oracle calls.
I did try to add the OraOps9.dll as a reference in both projects but was
unable to since it said that it was not a valid dll or COM class and could
not be added. Clearly, it is a dll and is working since when it was missing
the library class would not function, it would give the same error "cannot
find OraOps9.dll" .
These problems are so hard to explain. Any assistance is appreciated.