I am developing a Windows application that connects to Oracle DB.
The machine I am developing the application on has Oracle 6i installed with SQLPlus and Toad to access Oracle by command or graphical interface.
The same set up is true across all other computers in my work place.
The only difference is that my pc has Visual Studio and Oracle 10g ODP.Net libraries to make the development of Oracle Application possible using Visual Studio.
I made sure to include Oracle.DataAccess.dll file along with the EXE in the same path to reduce dependency on default paths/ etc.
The finished EXE file runs as expected on my computer, but whenever I publish it to the other computers, I get the following error message:
The type intializer for 'Oracle.DataAccess.Client.OracleConnection' threw an exception.
I tried to change the version of Oracle.DataAccess.dll from 2.111.6.20 to 10.2.0.100.
Again, it ran perfectly on my PC but gave the following exception on other PCs:
Unable to load DLL 'OraOps10.dll': the specified module could not be found.
I copied the said file above from my pc and included it in the published folder of the EXE but the same error message appeared, as if it invisible to the .Net application.
All computers have Windows 7 and all of them are 32bit.
Is there a way to make the application connect to Oracle regardless of the libraries or Oracle version installed locally on the computer? (The same way Toad works whether it detects Oracle 6i or 10g installed)?
I can't install the Oracle 10g ODP.Net libraries on all computers.
The scenario is-
Delphi-7 is installed on my PC with ODAC, and my application is compiled by using ORA.dcu and is running on client's PC without installing Oracle Client on that PC. My C# application is using oracle-client.dll and running fine on my PC and one of my Client PC where I installed Oracle Client but it is not running on the PC where Oracle Client is not installed. This is not feasible solution to install Oracle Client on each client's PC.
Kindly suggest why Oracle client is required for C# exe on Client PC whereas Oracle Client is not required with Delphi-7 exe?
Can I use another library with C#?
I don't normally do .NET development but I have a small .NET app that I need to set up on a new Win2K8 IIS 7.5 server, the SQL 2005 server is on a different box. I've tested the .NET app on an Win7 IIS 7/SQL 2005 machine and it works fine. When I run the app on the new server I get the following error:
The 'SQLNCLI11' provider is not registered on the local machine.
I googled the error and found out that I needed to install the native client drivers. I found the sqlncli.msi file on the database server and installed it on the IIS server. Same problem.
I then installed the SQL Management Studio thinking that might have some drivers that it needed. Same error. I can connect through the management studio but the .NET app keeps giving me the same error.
Any suggestions?
Thank!
I changed the provider in my connection string from SQLNCLI11 to SQLNCLI10.
Works like a charm.
I have to do a modification on an old COM+ app written in C# 2.0. But when I try to register the DLL on a windows server 2008 machine with 'regsvcs excelserver.dll', I get the error:
The following installation error occurred:
1: FATAL: Could not find component 'Excelserver.CExcelManager' we just installed
I tried to run in as admin, and turned off UAC, but it doesn't make a difference.
If I try it on a windows 7 or windows server 2003 machine, it works.
Any ideas why this doesn't work on a windows server 2008 machine? It seems I don't find any additional logging in the event log.
Thanks,
L
You need to register using the 64-bit version of regsvcs instead of the 32-bit version.
I am running into peculiar issue. I am developing a windows based application which connects to Oracle database.
For initial testings, I have created installer and tested on different machines that I have. Each machine has Oracle Client installed and I did not see any problem in running application.
But when I share this installer with customer, he is getting error "Unable to load DLL OraOps10.dll". When asked he mentioned and has shown the Oracle Client installed on his machine and he is able to run other C# applications which connects to Oracle databases.
I do not understand why my application only getting above error. I even tried suggestions shared at https://forums.oracle.com/forums/thread.jspa?threadID=67364 but still no luck.
I even tried copying executables & DLLs manually on customer's machine. But still facing same issue.
So please help me on what else i can do.
Thanks & Best Regards
Sudhakar Chavali
P.S:
I am using Windows XP operating system and customer is also using same operating system. Both machines are of type 32 bit OS only.
This is the location where customer's oracle client installed:
C:\oracle\product\10.2.0\client_1\bin and same is the version in my case too.
We both are using Oracle 10g.
The ODP.NET drivers basically consist of two parts. The .NET part and the native OCI part. The error message indicates that the .NET part is working but fails to load the native part.
These issue are likely causes:
There's a version mismatch between the .NET part and the native part. Note that OraOps10.dll belongs to Oracle 10g. So the .NET part isobviously of version 10, and it is looking for a native part for version 10.
There could be a bitness mismatch. If the .NET part is running in 64 bit mode, it'll be looking for the 64 bit native OCI DLLs. On a 64 bit system, the task manager can tell you whether the process is 32 or 64 bit. 32 bit processes are marked with *32.
The registry might not contain the correct path to the native DLLs. ODP.NET will retrieve the value of HKEY_LOCAL_MACHINE\Software\Oracle\ODP.NET\2.xxx.x.x\DllPath to locate the OCI DLLs. Note that the registry is split into a 32 and 64 bit part. Depending on the process looking into the registry, it'll get different values.
It's best if you add all the available information to your question. Is it a 64 bit operating system? Is it a 32 or 64 bit process? Which version of the Oracle client was installed? What directory was the Oracle client installed? Can you see the correct registry entries?
As for me, I am getting Unable to load DLL "OraOps12.dll" error message.
It is a web application, and I am using Oracle XE. Both the web application (the client app) and the Oracle XE database server is installed on the same machine.
The Oracle XE database server comes with its own Oracle 11 client, but the ASP.NET MVC web app is using Oracle 12 client. Even though I installed Oracle 12 instant client on the machine, the ASP.NET MVC website could not see it, it keeps complaining "Unable to load DLL OraOps12.dll".
What I had to do was edit the registry at HKLM\Software\Oracle\ODP.NET\DllPath to point to the Oracle 12 instant client instead of the Oracle 11 client that gets installed with the Oracle XE.
I will post a more detailed explanation later once I am free.
I suspect that either the entire Oracle client was not installed OR an earlier version was installed.
You should have the customer verify that the version of the Oracle client that is installed matches yours and that the entire client, not just the .Net portion, was installed.
Can you throw some more light on this issue like whether the target OS is 32 or 64 bit. Try to generate the x86 and 64bit installers and check with your clients machine. If not the Oracle client may not be properly installed in the client pc. These issues are a little bit tricky to handle. Try to look at it in other directions.