1

I am under pressure on this one so any help would be great. This seems a long question buts its not.. I have just included as much info as possible.. rgds M

I have an Web Application with a Webservice installed on 3 environments (Dev, UAT and Prod) The system calls the web service from an SSIS package on SQL 2008 and it hits the method no Problem on the web service on all environments. I then try and open an oracle connection within the method like in the simple code below using the Oracle Assembly : Oracle.DataAccess.Client;

Hers is Sample Code :

  // Create and open a connection.
   OracleConnection mConnection = new OracleConnection(sCnx);
   mConnection.Open();  -- Fails at this call. 

The Exception Message and number are blank as per this similar issue - Oracle.DataAccess.Client.OracleException at Connection.Open()

However I have checked the Pass through setting and its set to true on all environments.

This is my connection string

<add name="cnx" connectionString="DATA SOURCE=MYHUP1.US.COM;PASSWORD=456336;PERSIST SECURITY INFO=True;USER ID=MYAPPUSER" providerName="Oracle.DataAccess.Client"/>

This is the version of the DLL that I use below. All Dlls are built and deployed with my application and in a bin folder. I have also checked that the Oracle.DataAccess.dll gets loaded from the BIN folder and not the GAC or from the Oracle 11 (64 Bit) install on the server.

Oracle.DataAccess.dll Version 2.112.3.0 32 Bit These are also included in the bin oci.dll, ociw32.dll, orannzsbb11.dll, oraocci11.dll, OraOps11w.dll

My application runs on a 64 bit machine but is a 32 bit app and I have this set on the App pool. Again it runs fine On DEV but not Prod. It also runs under the same service account on all 3 environments.

The thing that hammers me is the error message is blank and I have had to put loads of code in to check loaded modules and the groups that the service is running under. These all look fine.

Error Message from the Exception: Note the Message is blank.. this is the info when that I get when I pump everything out

Oracle.DataAccess.Client.OracleException at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure, Boolean bCheck) at Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, Object src) at Oracle.DataAccess.Client.OracleConnection.Open() at XXX.Business.XXXBO.TestConnectionAndDeleteData(Nullable`1 updateDate, Int64 currentUserID) in C:\Development\XXX........

On my Dev and Prod Environment I have the following Version of Oracle installed but I am using my own Drivers in the Bin Directory as mentioned above so I didn't think this would matter..

DEV = Oracle Provider version 11.2.0.1.0

PROD = Oracle Provider Version 11.1.0.6.20

Would anyone have any ideas as to why this wont work on my Prod Environment. I have been over IIS with a fine comb and compared to the other environments and they are the same. Just trying to track this down to an IIS issue, or Oracle. Please note that I don't have access myself to the UAT environment which also does help!!

best regards Mick

7
  • do have the 32bit client installed we experienced the same issue 2 weeks ago and we installed version 11.2.x and in regards to your connection string you only need to pass the datasource, username, password in the connecting string in your .net config file.. Commented Jan 26, 2015 at 2:30
  • thanks MethodMan..I'll get the 32bit client 11.2 installed and see if that makes a differenece. The version that's there is 64 bit so should I just upgrade this or installed the 32 bit version along side it? thanks Mick Commented Jan 26, 2015 at 8:35
  • install along side.. the 64bit version does not work in regards to using standard connection string.. not sure how Oracle can let this bug go on for so long without fixing it.. installing side by side is what we did.. it will install into it's own folder so you should have no issues.. when you consume the .dll just set the copy to local = true and remove the old and re add the new .dll.. make sure you use navigate to the 4.x folder not the 2.x folder.. Commented Jan 26, 2015 at 14:25
  • thanks Methodman.. really appreciated. I am getting the version upgraded now from 11.1g to 11.2. This is a 64 bit install. So once that is complete, you reckon that I should also install the 32 bit along side it. Ok cool. Only thing I am not sure on is I have the Oracle Drivers that my app uses copied into the app Bin folder and I don't used the ones that are installed so will installing the 32 bit help. Just double checking MM and thanks for the help... rgds M Commented Jan 26, 2015 at 16:13
  • 1
    hi Methodman... I had issues with this before hence the reason to put the DLL's in my own folder... I know.. DLL hell lol. Anyway I did what you suggested.. Unistalled and reinstalled and some config and its working like a charm.. really appreciated. if you provide an answer I'll accept it right away... thanks a million.. regards Mick Commented Jan 26, 2015 at 20:14

1 Answer 1

0

this is what you will need to do to correct it .

  • Install the 32bit client along side the 64bit one.. The 64bit version does not work in regards to using standard connection string.. not sure how Oracle can let this bug go on for so long without fixing it.. installing side by side is what we did.. it will install into it's own folder so you should have no issues.. when you consume the .dll just set the copy to local = true and remove the old and re add the new .dll.. make sure you use navigate to the 4.x folder not the 2.x folder.
Sign up to request clarification or add additional context in comments.

2 Comments

great stuff Methodman... really appreciated all the help. regards M
not a problem.. I am glad that I found a working solution 2 weeks ago as well as a way to bypass having to use theTNSNames crap as well lol

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.