(求助)部署ASP.MVC3+EF4+Oracle 遇到的问题
我在本机IIS部署都没问题,但是放到服务器就出错,
提示“找不到请求的 .Net Framework Data Provider。可能没有安装。”
我的服务器是windows2008标准版 32位, 数据库是oracle10g的 服务器上没有安装vs2012,其他环境都装, 我本机是vs2012 win8 64位,数据库是10g 项目用的是MVC3.0 + .NET framwork 4.0 本机
oracle客户端安装的是ODTwithODAC1120320_32bit 都没问题,是不是也要在服务器安装一个 ODTwithODAC1120320_32bit ?但是我在服务器安装的时候报错,安装失败,提示“could not find the main class ” 难道是我必须要要在服务器上安装一个vs才行?服务器上安装了java环境和oracle10g
麻烦帮忙看下是什么问题,万分感谢!!!
[最优解释]
你检查下C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config下面的 machine.config 中是不是有注册ODP:
<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=2.111.6.20, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</DbProviderFactories>
</system.data>
<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" />然后 把本机D:\app\bj\product\11.2.0\client_1\odp.net\bin\4安装目录下的“Oracle.DataAccess.dll”复制到了服务器网站的bin目录下,现在出现下面的错误是
“/”应用程序中的服务器错误。
--------------------------------------------
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
源错误:
执行当前 Web 请求期间生成了未经处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。
堆栈跟踪:
[OracleException (0x80004005): The provider is not compatible with the version of Oracle client]
Oracle.DataAccess.Client.OracleInit.Initialize() +356
Oracle.DataAccess.Client.OracleClientFactory..cctor() +50
[TypeInitializationException: “Oracle.DataAccess.Client.OracleClientFactory”的类型初始值设定项引发异常。]
[TargetInvocationException: 调用的目标发生了异常。]
System.RuntimeFieldHandle.GetValue(RtFieldInfo field, Object instance, RuntimeType fieldType, RuntimeType declaringType, Boolean& domainInitialized) +0
System.Reflection.RtFieldInfo.InternalGetValue(Object obj, Boolean doVisibilityCheck, Boolean doCheckConsistency) +180
System.Reflection.RtFieldInfo.GetValue(Object obj) +8
System.Data.Common.DbProviderFactories.GetFactory(DataRow providerRow) +232
System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName) +88
System.Data.EntityClient.EntityConnection.GetFactory(String providerString) +35
System.Data.EntityClient.EntityConnection.ChangeConnectionString(String newConnectionString) +263
System.Data.EntityClient.EntityConnection..ctor(String connectionString) +81
System.Data.Objects.ObjectContext.CreateEntityConnection(String connectionString) +42
cswetLibrary.Models.Entities..ctor() +16
WebUI.Controllers.HomeController..ctor() +27