错误:找不到请求的 .Net Framework Data Provider。可能没有安装.
一.错误描述
今天在帮同事Debug的时候遇到这个问题,错误信息提示到是Data Provider的问题,首先我们看下环境.
数据库版本:Oracle 11.2.0.4.0 64位
数据库服务器:linux
应用服务器:32位windows
IIS:IIS7
.NetFramework:4.0
猜测到是没有安装.Net Framework的版本对应的Data Provider,查看web.config下面的节点:
<system.data>
<DbProviderFactories>
</DbProviderFactories>
</system.data>
并没有发现这里配置了DataProvider.
我们去对应版本的.NetFramework安装目录下的machine.config下去找这个结点
我的安装目录是:
也没有发现DataProvider配置.
到目前为止,我们就可以确定,是config里面少了配置项,现在我们来为.NetFramework添加Oracle提供的相应版本的Data Provider.
二.查看是否有相应的Data Provider
首先,确定我们系统上已有的Data Provider,因为我用的数据库是Oracle,所以我的Data Provider是Oracle提供的,Oracle的安装目录里可以查看到,我的是:
其中目录中的odp.net就是 Oracle Data Provider for .Net的缩写.
2.x是.NetFramwork 2.0版本的Data Provider(直到.NetFramework4以下,.NetFramwork3.0和.NetFramwork3.5只是加了不同的组件,但内核都是2.0)
4是.NetFramwork 2.0版本的Data Provider
它们是通过Oracle.DataAccess.dll来提供服务的.我们可以通过在vs.net命名行窗口下用gacutil.exe /l Oracle.DataAccess命令来查看安装的odp.net版本.
显示我已经安装了两个版本的Oracle Data Provider.
也可以通过在C:\Windows\assembly目录下查看Oracle.DataAccess.dll的程序集版本,处理器平台等特性.但有一个问题,我的本机查不到4.0版本的Oracle.DataAccess.dll安装信息.
但生产环境能查到,如下所示:
程序集的版本是10.2.0.100.
三.Oracle Data Provider的安装
如果没有对应的ODP.Net,需要自行安装,怎么知道你需要哪个类型哪个版本的ODP.Net呢?
这里有两个原则
1..Net应用程序与ODP.Net处理器类型保持一致,如:IIS的应用程序池是64位,那么ODP.Net的版本也要是64位的;
2..Net应用的.NetFramework版本与ODP.Net的版本也要保持一致.
下载地址(总揽):http://www.oracle.com/technetwork/topics/dotnet/downloads/index.html
64位ODP.Net下载地址:http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html
32位ODP.Net下载地址:http://www.oracle.com/technetwork/database/windows/downloads/utilsoft-087491.html
注意下载的时候,跟你的数据库版本保持一致.
以安64位ODP.Net为例:
D:\oracle11g\ODP.Net\x64>install.bat all c:\odp.net myhome (install all components)
上述命令将自动把所有文件复制到c:\odp.net下
c:\odp.net>configure.bat all myhome (configure all component)
四.Oracle Data Provider的配置
<add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client" description="Oracle Data Provider for .NET" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
版本信息什么的,要与你前面安装的保持一致.
五.使用Oracle Data Provider提供的程序集

参考文档
错误:找不到请求的 .Net Framework Data Provider。可能没有安装.的更多相关文章
- ASP.NET项目使用MYSQL数据库部署到IIS服务器找不到请求的.Net Framework Data Provider解决方案
使用MySQL开发过程中在自己的机器上跑项目是没有问题的,但在实际部署到服务器上的时候就发生“找不到请求的.Net Framework Data Provider解决方案”错误,在排除项目本身原因之后 ...
- 找不到请求的 .Net Framework Data Provider。可能没有安装.
学习中遇到的问题: 找不到请求的 .Net Framework Data Provider.可能没有安装. 找到的解决方法 解决方法: 安装Microsoft SQL Server Compact 4 ...
- MVC4.0 oracle 找不到请求的 .Net Framework Data Provider。可能没有安装.
oracle 11G, MVC4.0 项目,因刚重装系统,重新安装的VS2010, ORACLE 11G 运行项目,后报错 找不到请求的 .Net Framework Data Provider.可能 ...
- 解决“找不到请求的 .Net Framework Data Provider。可能没有安装.”错误
问题: 这几天在装.NET 的开发环境,在装好VS2013和Oracle 11g之后,做了一个测试项目,运行调试没问题 但是涉及到数据库相关操作,如新建数据集.连接数据库等在调试的时候则会出现如下错误 ...
- codesmith连接Mysql提示“找不到请求的 .Net Framework Data Provider。可能没有安装。"
1,首先需要将MySql.Data.dll复制到codesmith安装目录下bin文件夹下,注意dll的版本 2,其次因为codesmith7采用的是.net4.0的配置文件,(64位系统)找到C:\ ...
- Sqlite数据库 找不到请求的 .Net Framework Data Provider。可能没有安装
解决方法 在web.config里面添加 <system.data> <DbProviderFactories> <remove invariant="Sy ...
- 找不到请求的 .Net Framework Data Provider
1.安装 mysql-connector-net-6.9.10.msi 2.修改C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine ...
- (mysql)找不到请求的 .Net Framework Data Provider。可能没有安装
webconfig配置以下节点(注意版本号) <system.data> <DbProviderFactories> <add name="MySQL Data ...
- (mysql)找不到请求的.Net Framework Data Provider。可能没有安装
webconfig配置以下节点(注意版本号) 将下面代码放在machine.config中文件,如何Web.config文件没有配置,需要添加 <system.data> <DbPr ...
随机推荐
- UDP Server
//UDP服务器端程序,可以接受广播,不可接受多播,多播需要join播地址@Override public void run() { while (true) { try { DatagramSock ...
- 走进AngularJs 表单及表单验证
年底了越来越懒散,AngularJs的学习落了一段时间,博客最近也没更新.惭愧~前段时间有试了一下用yeoman构建Angular项目,感觉学的差不多了想做个项目练练手,谁知遇到了一系列问题.yeom ...
- Git怎样撤销一次分支的合并Merge
出现的问题: 某一天,所有的开发文件已经在development分支上,但是这时候,线上出了一个问题,需要及时修复,于是从master分支上,拉了一个bug分支,进行处理,master分支本应合并bu ...
- Beta阶段第六次Scrum Meeting
情况简述 BETA阶段第六次Scrum Meeting 敏捷开发起始时间 2016/12/16 00:00 敏捷开发终止时间 2016/12/17 00:00 会议基本内容摘要 平稳推进 参与讨论人员 ...
- python的错误和异常
python错误和异常 错误 错误分为语法错误和逻辑错误 语法错误 >>> if File "<stdin>", line 1 if ^ Syntax ...
- 一些不太常见但很有用的java类
java.util.concurrent.CopyOnWriteArrayList CopyOnWrite容器只能保证数据的最终一致性,不能保证数据的实时一致性.所以如果你希望写入的的数据,马上能读到 ...
- Smarty模版引擎的原理
Smarty是一个使用php写出来的模版引擎,用来将原本与html代码混杂在一起PHP代码逻辑分离,实现前后端分离. Smarty模板优点: 1. 速度:采用Smarty编写的程序可以获得最大速度的提 ...
- Greenplum记录(二):估计存储容量
存储空间除了用来存储用户数据,还需要:landing backup files and data load files 空系统的存储空间:disk_size * number_of_disks 除去系 ...
- 轮播插件unsilder 源码解析(二)
$.fn._active = function(className) { //当前的添加class,相邻元素去除class return this.addClass(className).siblin ...
- Linux启动界面切换:图形界面-字符界面(转)
Linux字符界面切换到图形界面 由字符界面切换到图形界面可用两种简单方法实现: 1.在字符界面输入startx或init 5 . 2.通过编辑/etc/inittab文件实现默认进入图形界面. 把其 ...