Oracle ManagedDataAccess - 连接请求超时 - 池

Rut*_*mui 8 c# oracle visual-studio-2010 odp.net-managed

我终于承认失败并寻求帮助.我已经做了我能想到的所有事情来解决这个问题,但似乎我无法做到这一点.

我正在使用:VS2010 C#Oracle 12c ODP.Net Managed121012

我继承了一个使用托管和非托管dataaccess dll的应用程序.它一直在工作,直到我卸载oracle.然后我为64位机器重新安装了11g客户端.我立刻注意到安装了框架2只有dataaccess dll,但我仍然继续.然后我将所有oci和ora dll从client_1文件夹复制到我的应用程序的bin目录中,并将Oracle.DataAccess.dll复制到我的bin目录中.我还将Oracle.ManagedDataAccess.dll复制到此文件夹中.

只要我没有更改数据集上的任何内容,我的应用程序就会成功运行.我会很乐意继续这样做,除了我必须创建更多的数据集.当我尝试添加新数据集时,我的数据源连接向导下拉列表为空.然后我尝试重新创建连接,但只能看到.Net Framework DProviders.我看不到托管服务提供商.在某些时候,我也得到了这个错误"当前没有选择数据提供者".

认为这是因为没有安装托管服务提供商我卸载了11g客户端并安装了64位12c客户端并将所有相关文件复制到我的应用程序的bin中.我在app.config文件中添加了以下行:

      <configSections>
    <section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess" />
Run Code Online (Sandbox Code Playgroud)

  <system.data>
<DbProviderFactories>
  <remove invariant="Oracle.DataAccess.Client" />
  <remove invariant="Oracle.ManagedDataAccess.Client" />
  <add name="ODP.NET, Managed Driver" invariant="Oracle.DataAccess.Client"
         description="Oracle Data Provider for .NET, Managed Driver"
         type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />     
</DbProviderFactories>
Run Code Online (Sandbox Code Playgroud)

在此之后,我现在可以看到一些旧的数据源,但我无法连接到我的数据库,因为我收到"连接请求超时".当我手动创建一个新连接时,我可以很好地与非托管提供程序连接,但得到一个连接请求超时错误.

我真的在绳子的尽头,在使用绳子之前真的很欣赏新鲜的眼睛.

提前致谢.

tom*_*ole 14

切换到托管驱动程序后我遇到了同样的问题.甚至使用本机和托管驱动程序编写了测试应用程序.结论是托管驱动程序需要比本机驱动程序更多的时间来打开新连接.对我们有用的解决方案是使用连接字符串设置大的连接超时.

<connectionStrings>
    <add name="ConnectionString" connectionString="data source=xxxx;user id=xxxx;password=xxxx;persist security info=false;Connection Timeout=120;" />

</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

  • 谢谢您的回答!甚至一年后也确实帮助了我。将 `Connection Timeout=120;` 添加到我的连接字符串解决了问题。 (3认同)