我有一个带有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;
问题:如何解决此数据库连接?我想念一下吗?
答案 0 :(得分:1)
几年前我与Oracle服务器连接时遇到了困难,我使用TOAD freeware version来调试连接字符串。这是一个救生员。另外,我需要Oracle DBA的帮助。
您的应用程序可能无法找到服务器。