【问题标题】:ASP.NET webapp - ORA-12154: TNS:could not resolve the connect identifier specifiedASP.NET webapp - ORA-12154: TNS: 无法解析指定的连接标识符
【发布时间】:2013-01-07 08:10:31
【问题描述】:

我是一名新的 (ASP.NET) 开发人员,从现有项目开始,其中一部分连接到 Oracle 数据库。我以前没用过Oracle。

当网络应用程序尝试连接到 Oracle 时,它​​会抛出上述异常。

很多其他帖子都提到了这个例外,但我觉得我遵循了所有建议都无济于事。

以下是我的设置概览:

  1. 我已将 Oracle 客户端版本 11.2.0 安装到主目录 "C:\app\TroughT\product\11.2.0\dbhome_1"
  2. 我添加了一个 tnsnames.ora 从另一台开发人员机器(这一切正常)的文件到 "C:\app\TroughT\product\11.2.0\dbhome_1\NETWORK\ADMIN"
  3. 我变了 将 sqlnet.ora 中的 APP_BASE 变量 "C:\app\TroughT\product\11.2.0\dbhome_1\log"
  4. 我已经(目前)给出了 每个人都可以完全控制整个 dbhome_1 目录,并且 子目录
  5. 在 Oracle Net Manager 中,我测试了相关的 与我的 ASP.NET 中使用的相同安全凭据的连接 连接字符串,它测试正常
  6. 我添加了一个 TNS_ADMIN 系统变量,其值为“C:\app\TroughT\product\11.2.0\dbhome_1\NETWORK\ADMIN”

我们一定错过了什么,但我就是不知道是什么。请帮忙!

更新:

我发现用我的 tnsnames.ora 文件中的完整定义替换连接字符串中的 SID 确实有效。下面的例子。一定与 ASP.NET 未能找到我的 tnsnames.ora 文件有关,但我知道该文件是有效的,并且据我所知,我的所有系统变量都指向正确的位置。所以至少我现在正在工作,但我想了解为什么我的 tnsnames.ora 文件不起作用。

失败的连接字符串:

"Data source=RMSUSNAP;User ID=uuuu;Password=pppp;"

工作连接字符串:

"Data source=(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = replaced.host.name)(PORT = 1521))(CONNECT_DATA =(SID = rmsusnap)));User ID=uuuu;Password=pppp;"

tnsnames.ora 的相关部分:

RMSUSNAP.WORLD =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = replaced.host.name)(PORT = 1521))
    (CONNECT_DATA =(SID = rmsusnap))
    )

【问题讨论】:

  • 连接字符串是什么样的?
  • 您是否尝试过在运行应用程序之前打开进程监视器,并找出您的应用程序试图在哪里找到 tnsnames.ora 文件?
  • @JoachimIsaksson "简单的数据源=RMSUSNAP;用户ID=uuuu;密码=pppp;"提供者名称为“System.Data.OracleClient” - 用户名和密码相同,我在 Net Manager 中测试连接。
  • @sahs 抱歉,不熟悉 Process Monitor - 这是 Oracle 的事情吗?在 Oracle 开始文件夹中看不到任何名称。将不胜感激指针。正如我所说,我是 Oracle 的新手,但我是一位经验丰富的 .NET 开发人员。
  • 顺便说一下,.NET 应用程序在其他开发人员机器上运行良好,所以我假设它与我的 Oracle 设置有关。

标签: asp.net oracle


【解决方案1】:

您应该在连接字符串中使用 RMSUSNAP.WORLD,而不仅仅是“RMSUSNAP”。

【讨论】:

    【解决方案2】:

    你检查过this question吗?

    我上次使用 Oracle 已经有很长时间了,但我记得我至少花了几天时间让它在我的 Windows 7 x64 机器上正常工作。

    我记得最后改变的是环境变量(ORA_HOME,如果我没记错的话)指向正确的文件夹(在我的例子中是 x64)。

    很抱歉,我记不住更多内容(将尝试搜索任何笔记),但我提到的链接可能会让您走上正确的道路。

    【讨论】:

    • 指针@tucaz 加一个,但不幸的是仍然对我没有任何作用。感觉我已经浏览过互联网上的每个论坛,并且每次都遇到同样的错误。当我尝试在 Visual Studio 的服务器资源管理器中进行连接时,我发现我收到了相同的消息。据我所知,我的设置与此处的其他开发人员相同,但工作正常。
    【解决方案3】:

    当我遇到(曾经)同样的问题和错误时...... 确保您的 sqlnet.ora 文件没有将其他连接信息附加到存储在 TNSNAMES.ora 文件中的连接之前。 一般来说,我们只是删除 sqlnet.ora 文件或重命名为其他文件(sqlnet.ora.org)。一旦此文件不再向连接字符串添加其他信息,blammo,一切正常。

    【讨论】:

      【解决方案4】:

      刚刚遇到这个问题:进入 IIS 并在 Sites 下查找 Web 应用程序,然后单击 Web 应用程序并单击 SSL Settings。在客户端证书下单击Accept 单选按钮并申请。

      【讨论】:

        猜你喜欢
        • 2014-11-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-06
        • 2016-11-25
        相关资源
        最近更新 更多