64位Win2008_VS2012使用ODP.NET遭遇问题和解决办法
原文地址:64位Win2008_VS2012使用ODP.NET遭遇问题和解决办法
最近为使用Oracle11G数据库做个快速开发的小程序,使用64位Win2008+Vs2012环境,结果碰壁连环,幸好不算太笨,终于解决了,特记录一下。
测试环境: Oracle11g (11.2.0.3_64bit)安装在64位Win2008上,同机安装Vs2012,C#语言。
在项目引用system.data.oracleclient后,提示:Ms仅在.net framework 4尚支持system.data.oracleclient,今后的版本将不再提供这个组件了。
于是想改用Oracle提供的组件。
匆忙到Oracle官网下载了ODAC 11.2 Release 4 (11.2.0.3.0) ,32位和64位的都下了,很想当然地就安装了64位的ODP.Net,结果vs2012里的server explore里添加数据库连接时,根本不出现Oracle提供的组件选项。仔细看了一下,release 说明,只支持到VS2010,白忙了!
不死心,再下ODAC 11.2 Release 5 (11.2.0.3.20),32位和64位的都下了,爬网,网友说Vs2012是32位的,就安装了32位的ODP.Net,结果vs2012里的 server explore里添加数据库连接时,出现Oracle提供的组件选项,心中一喜,有门。可是输入参数后报错:" Ora-12560:TNS:... " 。 按错误号检查了数据库服务、监听、TNSname等,似乎没有错。另外这个组件的界面也乖乖的,输入连接的验证用户名(小写)后,再输入密码,用户名就变 成大写字母了的,让人不放心。
继续爬网,看到网友“安裝ODAC 11.2 Release 5後Visual Studio無法使用Oracle資料來源”一文,有些启发。但感觉问题还是出在安装程序做了坏事,破坏了原来能用的TNSNAME设置。当然,删除老版本是对的。
为测地删除我电脑上已安装的ODAC 11.2 Release 5,干脆再下载了最新版的ODAC 11.2.0.3.60 beta,然后先删除了ODAC 11.2 Release 5,再安装ODAC 11.2.0.3.60 beta,安装过程中还提示连接串参数了,心想终于快天亮了。安装顺利,Vs2012里添加连接,出现的界面也正常了(不象release 5那个怪了),输入参数,点击“测试连接”,依旧报错:" Ora-12560:TNS:... " 。
幸好检查下,lsnrctl service, 发现只有一个服务在听,缺少了2个实例(我的电脑上安装了2个不同的数据库实例NFD和ORCL)的TCP侦听,但是又不想用网友的办法手工修改 machine.config的DbProviderFatories,于是启动 Net Configuration Assistant重新配置了一下,监听和本地命名,再重启了一下2个实例的服务和Listener服务,再看lsnrctl service,正常了,如下:
C:\Users\zyc>lsnrctl services
LSNRCTL for 64-bit Windows: Version 11.2.0.3.0 - Production on 16-7月 -2013 11:0
1:49
Copyright (c) 1991, 2011, Oracle. All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=zycBackupSvr)(PORT=1521)))
服务摘要..
服务 "CLRExtProc" 包含 1 个实例。
实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
处理程序:
"DEDICATED" 已建立:0 已被拒绝:0
LOCAL SERVER
服务 "nfd" 包含 1 个实例。
实例 "nfd", 状态 READY, 包含此服务的 1 个处理程序...
处理程序:
"DEDICATED" 已建立:0 已拒绝:0 状态:ready
LOCAL SERVER
服务 "nfdXDB" 包含 1 个实例。
实例 "nfd", 状态 READY, 包含此服务的 1 个处理程序...
处理程序:
"D000" 已建立:0 已被拒绝:0 当前: 0 最大: 1022 状态: ready
DISPATCHER <machine: ZYCBACKUPSVR, pid: 4988>
(ADDRESS=(PROTOCOL=tcp)(HOST=zycBackupSvr)(PORT=44919))
服务 "orcl" 包含 1 个实例。
实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
处理程序:
"DEDICATED" 已建立:1 已拒绝:0 状态:ready
LOCAL SERVER
服务 "orclXDB" 包含 1 个实例。
实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
处理程序:
"D000" 已建立:0 已被拒绝:0 当前: 0 最大: 1022 状态: ready
DISPATCHER <machine: ZYCBACKUPSVR, pid: 4964>
(ADDRESS=(PROTOCOL=tcp)(HOST=zycBackupSvr)(PORT=44968))
命令执行成功
最新文章
- MyEclipse快捷键敏感设置
- selmodel
- Machine Learning 学习笔记 (1) —— 线性回归与逻辑回归
- 【pku2115-C Looooops】拓展欧几里得-不定方程
- IEEE Floating Point Standard (IEEE754浮点数表示法标准)
- 转:Android软件开发之PreferenceActivity中的组件
- wpf 控件复制 克隆
- python学习之旅:array 转 list
- vue-router路由动态传参query和params的区别
- (转)Apache从2.2换至2.4httpd.conf的调整笔记(windows环境)
- asp.net-基础-20180320
- WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! --主机密钥验证失败
- rsyslog和logrotate
- MATLAB总结二
- js判断360浏览器 兼容模式IE版本
- Flask-SQLAlchemy 无法创建Sqlite 数据库???
- [POI2014]Rally
- MySql和相关驱动的安装方式
- ActiveMQ 用户名密码设置
- JQuery总结+实例