我认为通过 Oracle.ManagedDataAccess.Core NuGet 包使用 ODP.Net Managed Connections 的全部意义在于您不需要在运行时环境中安装 Oracle 客户端。我发现很多关于
ORA-12154: TNS: 无法解析指定的连接标识符错误
错误,但所有关于潜在修复的讨论都围绕客户端配置问题展开。
我所做的正是本文中所描述的。当我从 Visual Studio 本地运行该应用程序时,该应用程序连接良好,但是当它由 Azure 管道构建和部署时,它无法连接。来自服务器的连接不是问题,并且没有 tnsnames.ora 和 sqlnet.ora 文件,或者 TNS_ADMIN 和 ORA_HOME 环境变量。
2021-02-15T18:04:40.867284043Z Oracle connection string: (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=<ip address>)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=<sid>)));User Id=<User>;Password=<Password>;
2021-02-15T18:04:40.871226968Z [41m[30mfail[39m[22m[49m: Microsoft.AspNetCore.Server.Kestrel[13]
2021-02-15T18:04:40.871246768Z Connection id "0HM6HRG9F3OUG", Request id "0HM6HRG9F3OUG:00000004": An unhandled exception was thrown by the application.
2021-02-15T18:04:40.871252068Z Oracle.ManagedDataAccess.Client.OracleException (0x80004005): ORA-12154: TNS:could not resolve the connect identifier specified
2021-02-15T18:04:40.871255568Z ---> OracleInternal.Network.NetworkException (0x00002F7A): ORA-12154: TNS:could not resolve the connect identifier specified
我也尝试了这个 EZ Connect 字符串,但没有成功:
<user>/<password>@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=<ip address>)(Port=<port>))(CONNECT_DATA=(SID=<mysid>)))
我错过了什么?
更新:该问题似乎是由 Azure 混合连接管理器而不是 Oracle 连接的潜在问题引起的。现在查看 VPN 连接。暂时保留您尝试不同连接字符串格式的建议。