c#连接到Oracle数据库

时间:2016-06-03 11:20:29

标签: c# .net database oracle entity-framework

我有一个带有Entity Framework的c#应用程序,它与Oracle数据库有连接。这种连接在我的开发PC和旧的共享Windows 2008服务器上运行良好。

现在我将它部署在一个新的Windows 2012测试服务器上,服务器抛出一个他无法连接到数据库的错误。

当我telnet其IP和端口1521时,服务器可用,因此它应该是可连接的。

这是相关的web.config代码:

<connectionStrings>
    <add name="Context" connectionString="DATA SOURCE=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=XXX)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XXX)));USER ID=XXX;PASSWORD=XXX;PERSIST SECURITY INFO=False" providerName="Oracle.ManagedDataAccess.Client" />
</connectionStrings>

<entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
        <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
        <provider invariantName="Oracle.ManagedDataAccess.Client" type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices, Oracle.ManagedDataAccess.EntityFramework, Version=6.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
    </providers>
</entityFramework>  

<DbProviderFactories>
    <remove invariant="Oracle.ManagedDataAccess.Client" />
    <add name="ODP.NET, Managed Driver" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET, Managed Driver" type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</DbProviderFactories>

这是我得到的错误:

  

System.Data.Entity.Core.ProviderIncompatibleException

     

&#34;访问数据库时出错。这通常意味着   与数据库的连接失败。检查连接字符串是否为   更正并且正在使用适当的DbContext构造函数   指定它或在应用程序的配置文件中找到它。看到   http://go.microsoft.com/fwlink/?LinkId=386386了解有关的信息   DbContext和连接。有关详细信息,请参阅内部异常   。失败&#34;

     

&#34;连接请求超时&#34;

问题:如何解决此数据库连接?我想念一下吗?

1 个答案:

答案 0 :(得分:1)

几年前我与Oracle服务器连接时遇到了困难,我使用TOAD freeware version来调试连接字符串。这是一个救生员。另外,我需要Oracle DBA的帮助。

您的应用程序可能无法找到服务器。