Anyone attempting to get their application communicating with an Oracle database will have had to deal with the crucial tnsnames.ora and the information it contains. And I'll also bet anyone doing this will have seen this beautifully helpful message:
The reason for this message is that your application cannot find the information it needs to connect to the database, which is usually contained within the tnsnames.ora file (which could be in a number of locations). The process is analogous to a DNS lookup which resolves a domain name into an IP address, but instead you are resolving an alias into database addresses.
However even if your tnsname.ora contains the correct information, you may still get this error if the application cannot locate the file containing the appropriate identifier. Of course there are tools such as Tnsping, but I've found its help to be rather limited.
However what isn't very well known is that..
Your .NET application will use the tnsnames.ora file located in the same folder as the executable
As far as I know this isn't documented anywhere and I only discovered it by reading this answer.
The upshot of this means you can ship the file right along side your application, and actively modify it for granular control of your application's database connections.
Hope this helps you out too...