【问题标题】:Connection to Oracle works through a console application and doesn't work through a web service与 Oracle 的连接通过控制台应用程序工作,而不是通过 Web 服务工作
【发布时间】:2011-01-13 15:08:08
【问题描述】:

我无法通过 asmx Web 服务连接到 Oracle 架构,但我可以通过控制台应用程序 [x86]。

代码:

var conn = new OracleConnection("Data Source=xe;User ID=mySchema;Password=myPass");

例外:

ORA-12154: TNS:could not resolve the connect identifier specified

环境:Windows 7 x64 - VS 2008。

有什么想法吗?

请向我询问任何其他信息

提前致谢。

【问题讨论】:

  • 控制台应用程序和 Web 服务是否从同一主机运行?您的 sqlnet.ora 和 tnsnames.ora 文件设置是否正确以允许您对指定的数据库进行名称解析?您是否尝试过 TNSPing 您尝试连接的主机?解决了吗?
  • @DarkBobG:是的,他们来自同一个主机。我尝试了 TNSPing,它解决了别名。没关系。

标签: c# .net oracle connection oracleclient


【解决方案1】:

ODP(或本机 Oracle 客户端层)所基于的 Oracle 客户端层 OCI 存在一个错误,该错误会阻止位于包含括号 () 的文件夹中的任何应用程序正常运行

自从 Program Files (x86) 文件夹出现后,这个 bug 就非常明显了...

运行您的应用程序的主机(通常是 IIS)可能位于 x86 文件夹中,因此存在问题。您的控制台应用运行良好,因为它可能位于没有问题的文件夹中。

更多信息和一些解决方案here

【讨论】:

    【解决方案2】:

    我不是甲骨文专家,但我在其他数据库中也遇到过类似情况。我们遇到的问题是 DSN 是作为用户 DSN 而不是系统 DSN 创建的。我不知道 Oracle 数据源是如何创建的,但我会检查一下。

    【讨论】:

      【解决方案3】:

      我遇到了完全相同的问题。我通过引用 Oracle.ManagedDataAccess.dll 而不是 Oracle.DataAccess.dll 解决了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-08-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-26
        • 1970-01-01
        • 1970-01-01
        • 2021-11-08
        相关资源
        最近更新 更多