32位Windows系统下开发的asp.net程序,在32位系统下连接oracle都正常,放到64位系统下就连不上了,分析原因应该是64位oralce数据库客户端无法被程序调用的问题,下面有两种解决方案:
第一种,需要安装oracle的32位客户端
1、首先下载并安装32位的ODAC(Oracle Data Access Components),Oracle官方下载地址http://www.oracle.com/technetwork/topics/dotnet /utilsoft-086879.html,理论上也可以安装oracle的client端或服务端,但是这个比较小才200多M
2、设置网站的应用程序池,打开“高级设置”将选项”启用32位应用程序“设置为True
3、添加并设置系统环境变量ORACLE_HOME和NLS_LANG
例如:ORACLE_HOME=D:\app\Administrator\product\11.2.0\client_1
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
4、修改web.config中Data Source的链接字符串,不能使用本地网络配置的服务名称,需改写为用 IP地址+orace服务名
有两种写法可用,下面举例说明:
Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.44)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ocl)));
Data Source=192.168.0.44/ocl;
有两种写法可用,下面举例说明:
Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.44)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ocl)));
Data Source=192.168.0.44/ocl;
第二种,绿色版Oracle客户端
1、下载32位的Instant Client,Oracle官方下载地址:http://www.oracle.com/technetwork/topics/winsoft-085727.html,下载后解压缩到一个目录(注意目录名不能有中文或特殊字符)
2、同第一种方案
3、在上面的基础上增加一个path的环境变量指向Instant Client的目录
4、同第一种方案
1、下载32位的Instant Client,Oracle官方下载地址:http://www.oracle.com/technetwork/topics/winsoft-085727.html,下载后解压缩到一个目录(注意目录名不能有中文或特殊字符)
2、同第一种方案
3、在上面的基础上增加一个path的环境变量指向Instant Client的目录
4、同第一种方案