今天开发那边升级、改造系统过程中,在测试服务器碰到关于ASP程序连接ORACLE数据库的小问题,虽然是小问题,但是整起来真要命啊,花了不少时间,主要是ASP程序啊,这种上古神器,哥还是当年毕业的时候弄过半年,现在基本上忘得七七八八了。
环境介绍:在系统Windows Server 2008下部署了ASP应用程序,IIS为7.0版本,ORACLE 客户端为 11g,测试连接数据库报错的情况如下:
数据库链接方式如下:
application("Connection_ConnectionString")="Driver={Microsoft ODBC for Oracle};Persist Security Info=false;uid=xxxx;pwd=xxx;Server=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS = (PROTOCOL = TCP)(HOST =xxx.xxx.xxx.xxx)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = xxx)));"
这是因为在系统Windows Server 2008下,默认64位环境下,IIS应用程序池未启用32位应用程序,需要启用一下就可以了。打开IIS,定位到“应用程序池”,然后找到对应的目录,启用32位应用程序设置为True就可以了,注意:需要重启IIS服务
2: 报错现象:Data source name not found and no default driver specified 未在本地计算机注册“OraOLEDB.Oracle.1”提供程序
链接方式:
cn.open "Provider=OraOLEDB.Oracle.1;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521)))(CONNECT_DATA =(SID = xxx)));User Id=xxx;Password=xxx"
解决方法:
需要手工注册 regsvr32 C:\app\Administrator\product\11.2.0\client_1\BIN\OraOLEDB11.dll