The provider is not compatible with the version of Oracle client
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: Oracle.DataAccess.Client.OracleException: The provider is not compatible with the version of Oracle client
源错误:
行 197: dataAccessFactory.ConnectionString = connectionString;
行 198: int dbModeIndex = (int)(currentDBMode);
行 199: dataAccessFactory.GetConnection((DataAccessFactory.DBMode)dbModeIndex);
行 200: dataAccessFactory.OpenConnection();
行 201: }
------解决方案--------------------
提供程序与此版本的 Oracle 客户机不兼容
保留下安装文件夹里的所有文件。然后把我那个很小应用软件(需要访问远程的oracle数据库)放在这个文件夹里。删除一下直接感觉无用的文件,先抽取可能用不着的文件,保留放在另一个备用的文件夹里,然后运行程序。如果程序能运行,那么继续抽取可能用不着文件;如果不能运行,那么可以确定这个文件是程序需要的,经过一步一步这样的反复处理。得到了如下精简的oracle客户端
在这个文件夹里发现了.net应用程序必须具备的DLL组件:
oci.dll
oraops11w.dll
oraociei11.dll
msvcr71.dll
oracle.DataAcess.dll
可选:oraocci11.dll
可选:orannzsbi1.dll
推荐你设置系统path环境变量,这大部分人都会,现在把以上文件复制到一个空的文件夹,重命名为oracleclient,这就是我们制作的免安装客户端。使用时在path环境变量中添加你的系统中这个oracleclient客户端路径就可以了。也可以把这个文件里DLL直接放在你要运行的.net程序里,那样也不需要配置环境变量,不过如果那样做的话,也直限你那个程序能用了
------解决方案--------------------
没装Oracle Client
------解决方案--------------------
错误很明显啊,provide和oracle client不兼容,用process monitor跟踪下看看是引用那个dll出错了,安装不仔细看,后面就要各种头大了