Mus*_*g31 8 c# oracle asp.net-mvc entity-framework odac
我正在尝试学习并弄清楚是否可以将MVC,EF,ODAC 11.2.0.3应用程序部署到安装了先前版本的ODP.NET的服务器上.我想我可以使用Oracle Instant Client,而不是更新服务器ODP.NET(我不能).
这可行吗?
1)我将这些dll添加到我的项目中以支持Instant Client
-Oracle.DataAccess.dll
-oci.dll
-ociw32.dll
-orannzsbb11.dll
-oraociei11.dll
-OraOps11w.dll
2)接下来,我更新了dbProviderFactories的web.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" />
</DbProviderFactories>
</system.data>
Run Code Online (Sandbox Code Playgroud)
3)这个(afaik)是如何在bin rathre中使用Oracle dll而不是GAC
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89b483f429c47342" />
<publisherPolicy apply="no" />
</dependentAssembly>
</assemblyBinding>
</runtime>
Run Code Online (Sandbox Code Playgroud)
4)最后我的connectionString
<connectionStrings>
<add name="Entities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=Oracle.DataAccess.Client;
provider connection string="DATA SOURCE=XXX;PASSWORD=XXX;PERSIST SECURITY INFO=True;USER ID=XXX"" providerName="System.Data.EntityClient" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
这是我收到的错误无法找到请求的.Net Framework数据提供程序.它可能没有安装.
我非常感谢这里的任何帮助.我很新,有很多东西需要学习.提前致谢.干杯
在 Web 配置的元素中添加一个<remove \xe2\x80\xa6 />部分以删除任何现有的 Oracle 提供程序。<DbProviderFactories>(之前<add>)
<remove invariant ="Oracle.DataAccess.Client" />