我最近在我的一台开发服务器上部署了一个 Web 应用程序。我正在使用 oracle、asp.net 和 c#。当我在服务器上运行应用程序时一切正常,但是当我尝试在服务器外运行应用程序时(例如使用我的电脑)我得到这个错误:
ORA-12154: TNS:could not resolve the connect identifier specified
如果我在我的电脑上使用 visual studio 运行该应用程序,它工作正常。
Oracle 安装在服务器“A”中,应用程序在服务器“B”中。服务器“A”在一个域中,服务器“B”在另一个域中。我的电脑与服务器“A”在同一个域中。
在我的电脑中,我可以在 C:\oracle\product\10.2.0\client_1\NETWORK\ADMIN 中找到文件 tnsname.ora,但在服务器“B”中我无法在任何地方找到它
有什么想法吗? 感谢您的帮助。
最佳答案
你试过了吗? (来自http://ora-12154.ora-code.com/)
ORA-12154: TNS: 无法解析指定的连接标识符
原因:使用连接标识符请求与数据库或其他服务的连接,并且无法使用配置的命名方法之一将指定的连接标识符解析为连接描述符。例如,如果使用的连接标识符类型是网络服务名称,则无法在命名方法存储库中找到网络服务名称,或者无法找到或访问存储库。
行动:
- 如果您使用本地命名(TNSNAMES.ORA 文件):
确保“TNSNAMES”被列为 Oracle Net 配置文件 (SQLNET.ORA) 中 NAMES.DIRECTORY_PATH 参数的值之一
验证 TNSNAMES.ORA 文件是否存在、位于正确的目录中并且可以访问。
检查 TNSNAMES.ORA 文件中是否存在用作连接标识符的网络服务名称。
确保 TNSNAMES.ORA 文件中的任何地方都没有语法错误。查找不匹配的括号或杂散字符。 TNSNAMES.ORA 文件中的错误可能使其无法使用。
如果您使用目录命名:
验证“LDAP”是否列为 Oracle Net 配置文件 (SQLNET.ORA) 中 NAMES.DIRETORY_PATH 参数的值之一。
验证 LDAP 目录服务器已启动并且可以访问。
验证目录中是否配置了用作连接标识符的网络服务名称或数据库名称。
通过将完全限定的网络服务名称或完整的 LDAP DN 指定为连接标识符来验证所使用的默认上下文是否正确
如果您使用的是简单连接命名:
验证“EZCONNECT”是否列为 Oracle Net 配置文件 (SQLNET.ORA) 中 NAMES.DIRETORY_PATH 参数的值之一。
确保指定的主机、端口和服务名称正确。
尝试将连接标识符括在引号中。有关命名的更多信息,请参阅 Oracle 网络服务管理员指南或 Oracle 操作系统特定指南。
关于database - Ora 12154 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/162762/