错误:找不到请求的 .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为例:

1、下载完成后,将其解压到某个目录,比如D:\oracle11g\ODP.Net,cmd下键入命令:
D:\oracle11g\ODP.Net\x64>install.bat all c:\odp.net myhome (install all components)
上述命令将自动把所有文件复制到c:\odp.net下

2、然后转到c:\odp.net下,键入命令:
c:\odp.net>configure.bat all myhome (configure all component)

将自动向GAC中部署相应的程序集.

四.Oracle Data Provider的配置

安装了过后,你可以在对应的.NetFramework版本下查看machine.config里面的<system.data><DbProviderFactories>节点,如果没有,你可以在这个节点下添加.

<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"/>

版本信息什么的,要与你前面安装的保持一致.

也可以在你的应用程序下的webconfig下面的<system.data><DbProviderFactories>节点添加上述信息.推荐在machine中添加,这样使用相应版本的.NetFramework下的应用程序就不用单独再一一配置了.

五.使用Oracle Data Provider提供的程序集

现在可以打开你的VS,添加Oracle Data Provider(ODP.Net)提供的程序集Oracle.DataAccess.dll了.

现在,可以使用这个Oracle提供的DLL来访问Oracle数据库了.前面的问题也迎刃而解.其他不同类型的数据库也可以按照这个思路来解决.

原文地址:http://www.cnblogs.com/gudi/p/6110875.html

时间: 2024-12-26 19:03:19

错误:找不到请求的 .Net Framework Data Provider。可能没有安装.的相关文章

找不到请求的 .Net Framework Data Provider。可能没有安装.

找不到请求的 .Net Framework Data Provider.可能没有安装. 解决方法: 安装Microsoft SQL Server Compact 4.0. 安装Microsoft SQL Server Compact 4.0之后,程序运行正常. 问题的原因就是程序连接.sdf的数据库时的报错,所以安装Microsoft SQL Server Compact 4.0即可. Microsoft SQL Server Compact 4.0中文版下载地址: http://www.mic

CodeSmith 找不到请求的 .Net Framework Data Provider

连接数据库时候报标题的错误解决方案 安装mysql-connector-net-6.8.7.msi,下载地址:http://dev.mysql.com/downloads/connector/net/6.8.html 安装mysql-for-visualstudio-1.2.6.msi,下载地址:http://dev.mysql.com/downloads/windows/visualstudio/1.2.html 原文地址:https://www.cnblogs.com/chongyao/p/

找不到请求的 .Net Framework Data Provider。可能没有安装。

解决方法: 安装Microsoft SQL Server Compact 4.0. 安装Microsoft SQL Server Compact 4.0之后,程序运行正常. 问题的原因就是程序连接.sdf的数据库时的报错,所以安装Microsoft SQL Server Compact 4.0即可. Microsoft SQL Server Compact 4.0中文版下载地址: http://www.microsoft.com/downloads/zh-cn/details.aspx?fami

CodeSimth - .Net Framework Data Provider 可能没有安装

使用CodeSimth 连接SQLite数据库库 提示错误 codesmith 6以上的版本,说是支持sqlite生成,也有对应的sqliteprovider.dll,但是使用时却说Test failed.  找不到请求的 .Net Framework Data Provider.可能没有安装. 拷贝下面dll 到 CodeSimth 的 Bin目录下 x64/SQLite.Interop.dll   x86/SQLite.Interop.dll System.Data.SQLite.dll,S

.Net Framework Data Provider可能没有安装

方法一.下载SQL Server Compact 4.0 安装后就可以解决.下载地址是: http://www.microsoft.com/downloads/zh-cn/details.aspx?familyid=033cfb76-5382-44fb-bc7e-b3c8174832e2&displaylang=zh-cn 方法二.在web.config里添加 <system.data> <DbProviderFactories> <add name="My

连接MySQL数据库得到错误&ldquo;Unable to find the requested .Net Framework Data Provider&rdquo;

  Registering DbProviderFactories Each .NET Framework data provider that supports a factory-based class registers configuration information in the DbProviderFactories section of the machine.config file on the local computer. The following configurati

访问MySQL数据库时,报“找不到请求的 .net Framework 数据提供程序。可能没有安装。”的解决方案

最近开发了一个系统,在测试环境上进行部署(win7环境)并测试,没有发现问题:但是把系统部署到win Server2008R2上之后,部分页面就报“找不到请求的 .net Framework 数据提供程序.可能没有安装.”的错误,对服务器进行排查,服务器上的framework版本从2.0.3.5.4.0都进行了安装,而且开发的系统在使用SQL Server数据库的时候是可以正常部署的.最后判定是换了数据库(由SQL Server换成MYSQL)而导致的环境问题或者是配置问题,最后通过查找资料,修

SQLite : 解决“找不到请求的 .Net Framework 数据提供程序。可能没有安装”的问题

在使用subsonic 3时,如果不完整安装SQLite的SDK包,直接在项目中使用System.Data.SQLite将引发上述错误. 原因是:是 DBproviderfacotories 没有导致 解决的办法是手动在配制文件中指定 ,代码如下 : <system.data> <DbProviderFactories>      <remove invariant="System.Data.SQLite"/>      <add name=&

解决VS2010在新建实体数据模型出现&ldquo;在 .NET Framework Data Provider for Microsoft SQL Server Compact 3.5 中发生错误。请与提供程序供应商联系以解决此问题。&rdquo;的问题

最近想试着学习ASP.NET MVC,在点击 添加--新建项--Visual C#下的数据中的ADO.NET 实体数据模型,到"选择您的数据连接"时,出现错误,"在 .NET Framework Data Provider for Microsoft SQL Server Compact 3.5 中发生错误.请与提供程序供应商联系以解决此问题.",这里写下,以防自己忘记. 网上查了一下,说是重新安装一下 .NET Compact Framework 3.5,http