今天主要测试部署XXXXXXX的程序,中间遇到不少挫折,网上找了不少资料,最后问题还是终于解决了;
总结如下:
调试问题不要乱猜,如果能找到依据,要尽量找到依据,我开始错略看了错误日志,判断是tnsnames.ora设置问题,后来plsql能连接上,说明设置应该是没问题的;
最后看C#的app.config的配置代码,忽然想到能不能会是配置文件里只能用oralce数据库的service_name名,不能使用SID,最后试验,还真是这个问题。
1.服务器器是win2008 r2,需要安装.net4.5framework ;
我安装的是dotNetFx40_Full_x86_x64 离线独立安装包
2.安装ODTwithODAC1120320_32bit程序,ODTwithODAC是连接oracle数据库的中间件,因为我C#代码里引用的是32位的;
3.解压instantclient-basic-win-x86-64-11.2.0.1.0 到 ODTwithODAC1120320_32bit的安装路径下,设置环境变量path路径,instantclient-basic-win-x86-64-11.2.0.1.0 的路径放到最前面;
4.修改 tnsnames.ora,注意 service_name值有可能与sid不同;
service_name部分也可以写成SID=XXXXXX
service_name和SID的值请咨询oracle数据库管理员
5.设置环境变量 TNS_Admin
如:C:\app\Administrator\product\11.2.0\client_1\Network\Admin\Sample是放置 tnsnames.ora的路径;
6.安装PLSQL客户端,32位或64位都可以;
7.C#代码的配置文件app.config中的连接字符串
DATA SOURCE=IP:1521/serice_name;PASSWORD=XXX;USER ID=XXX" providerName="System.Data.OracleClient“
serice_name一定要填写正确,不是sid,serice_name与sid有时候可能不同。