.net - ODBC Oracle 错误

标签 .net oracle oracle10g odbc

我有一个被要求修改的 .net 应用程序,它使用 .net framework 2.0

我已经在我的本地机器上设置了一个带有 Oracle DB 连接详细信息的 ODBC DSN,测试了连接,它工作正常。

现在我运行我的应用程序,它没有问题并完成,我检查了我们的错误日志,发现了几个与这个问题无关的错误,但这个错误没有出现。

所以我用断点再次运行应用程序以解决这些错误。这次它因以下错误而崩溃

ERROR [IM004] [Microsoft][ODBC Driver Manager] Driver's SQLAllocHandle on SQL_HANDLE_ENV failed



现在让我明白的是,它甚至在 10 分钟前运行良好,我只添加了一个断点。

我找到了一些答案,并给了他们一个机会。
  • 我将 oracle 驱动程序文件夹上的读取/执行设置为关闭而不是打开以重置权限,这没有任何区别
  • 我检查了“路径”环境变量,没问题
  • 使用 ODBC 管理器我测试了没有错误的连接。
  • 已验证指向 DSN 的连接字符串仍然正确 5. 列表项
  • 已验证我的应用程序设置为运行 32 位,因为驱动程序是 32 位的。

  • 我唯一没有做的就是保存,关闭重新启动计算机并重试。我将在这篇文章之后立即执行此操作,如果它有效,我会发布。

    无论如何,如果有人知道什么可能导致这种行为,我会非常感谢你。

    电脑是Win7,.net FrameWork是2.0,是VB.net,Oracle驱动是10g(10.2)

    更新:
    好的,我使用 ODBC 管理器删除 DSN 并重建它。我运行了我的应用程序并且它有效。

    我今天晚些时候在没有更改后回来并重新运行了应用程序并再次收到错误。尝试重建DSN,但没有帮助,我尝试重新启动,但没有帮助。

    下面是堆栈跟踪。
    StackTrace:
           at System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode)
           at System.Data.Odbc.OdbcConnectionHandle..ctor(OdbcConnection connection, OdbcConnectionString constr, OdbcEnvironmentHandle environmentHandle)
           at System.Data.Odbc.OdbcConnectionOpen..ctor(OdbcConnection outerConnection, OdbcConnectionString connectionOptions)
           at System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
           at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
           at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
           at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
           at System.Data.Odbc.OdbcConnection.Open()
    

    最佳答案

    你是在远程桌面上运行这个吗?如果是这样,您可能必须将远程桌面用户的“创建全局对象”添加到本地策略中。

    如果您在本地桌面上,请检查您正在运行的 ODBC 驱动程序的版本。如果它早于 11.2.x.x,您可能应该从 Oracle 安装更新的 ODBC 驱动程序(不要使用 Microsoft Oracle ODBC 驱动程序 - 它有问题)。

    关于.net - ODBC Oracle 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15387554/

    相关文章:

    java - 位置 : 5. 处的格式错误的 SQL92 字符串需要 "call"?

    oracle - 能够通过 localhost 而不是通过 IP 地址访问 Oracle 数据库

    sql - 从 pl/sql 异常 block 关闭所有游标 'once'

    oracle - 为什么我可以创建同义词但不能授予同一个表的选择权?

    c# - 应该在哪里订阅 AppDomain.UnhandledException?

    .net - 电子签名/电子签名 API 建议

    .net - 在CF 3.5中将音频作为流输入

    Oracle Date Formatting Null 日期为 00/00/0000

    sql - 如何编写一个查询,为某个用户拥有的每个索引生成一组 ANALYZE INDEX 命令?

    .net - 如何取消长时间运行的数据库操作?