【问题标题】:My application is getting this weird error with TNS but我的应用程序在使用 TNS 时遇到了这个奇怪的错误,但是
【发布时间】:2020-02-04 19:37:28
【问题描述】:

VB.Net 应用程序出现此错误。但是,当我从命令提示符打开 SQL Plus 时,我可以毫无问题地连接

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

我不知道在这里做什么。

我也可以连接 SQL Developer Visual Studio 的服务器资源管理器也可以看到数据库。

【问题讨论】:

标签: vb.net oracle tnsnames tns


【解决方案1】:

我发现,与其在连接字符串所在的位置为数据源指定一个短名称,只需将整个连接描述放在一起就可以解决这样的问题。如果您不想追查机器上的特定配置问题,您可以做更多的解决方法,但我还没有失败。

如果你的 TNSNames 文件有:

MYSID=

  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = mydnshostname)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = MYSID)
    )
  )

您在 web.config 中的连接字符串如下所示:

<connectionStrings>
    <add name="MyConnection" connectionString="Data Source=MYSID;User ID=myUser;Password=myPassword;providerName="Oracle.DataAccess.Client" />
  </connectionStrings>

您可以在配置文件中执行此操作:

<connectionStrings>
        <add name="MyConnection" connectionString="Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST = mydnshostname)(PORT = 1521)))(CONNECT_DATA=(SERVICE_NAME = MYSID)));User ID=myUser;Password=myPassword;providerName="Oracle.DataAccess.Client" />
      </connectionStrings>

【讨论】:

    【解决方案2】:

    如果您使用的是 Oracle.ManagedDataAccess 客户端,您可能需要在 application.config 文件中设置 TNSnames 文件的路径:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <oracle.manageddataaccess.client>
        <version number="*">
          <settings>
            <setting name="TNS_ADMIN" value="C:\OracleTNS" />
          </settings>
        </version>
      </oracle.manageddataaccess.client>
    </configuration>
    

    【讨论】:

    • 我的应用没有 application.config 文件。我可以创建它吗?
    • 是的!在与YourAppName.exe 相同的目录下,只需创建一个YourAppName.exe.config
    猜你喜欢
    • 2016-07-03
    • 1970-01-01
    • 2020-01-25
    • 2021-11-29
    • 1970-01-01
    • 2018-10-01
    • 1970-01-01
    • 2018-03-17
    • 1970-01-01
    相关资源
    最近更新 更多