Visual studio 2010 尝试将Visual Studio应用程序连接到Oracle时出错

Visual studio 2010 尝试将Visual Studio应用程序连接到Oracle时出错,visual-studio-2010,oracle,tnsnames,Visual Studio 2010,Oracle,Tnsnames,我是Oracle新手。我正在尝试将Visual Studio 2010 VB应用程序与远程服务器上的Oracle服务器连接 我通过验证主机名和服务名来配置tnsnames.ora。当我尝试使用Server Explorer中的添加连接功能测试连接时,出现以下错误: ORA-12514:TNS:侦听器当前不知道连接描述符中请求的服务 这是否意味着我在tnsnames.ora中输入的值是错误的。或者我需要配置其他文档吗?例如listener.ora?除上述内容外,我没有做任何其他更改。请让我知道如何

我是Oracle新手。我正在尝试将Visual Studio 2010 VB应用程序与远程服务器上的Oracle服务器连接

我通过验证主机名和服务名来配置tnsnames.ora。当我尝试使用Server Explorer中的添加连接功能测试连接时,出现以下错误:

ORA-12514:TNS:侦听器当前不知道连接描述符中请求的服务

这是否意味着我在tnsnames.ora中输入的值是错误的。或者我需要配置其他文档吗?例如listener.ora?除上述内容外,我没有做任何其他更改。请让我知道如何解决这个问题,因为它是时间敏感的


谢谢

请先将Visual Studio从图片中删除。您需要确认您的Oracle客户端已在计算机上正确配置

如果安装了Oracle连接工具,则应已安装
tnsping
。在命令行中,输入

tnsping <server_name>
tnsping
这将尝试使用tnsnames文件中指定的配置查找Oracle服务器(如果您的sqlnet文件配置为让Oracle使用tnsnames协议)。如果它找到了,它会告诉你它使用了什么方法。然后,您可以将此信息用于Visual Studio连接

确保您的sqlnet文件是正确的。您可以使用此文件告诉Oracle用于解析服务器的协议顺序(例如tnsnames、ldap等)。我的情况如下:

SQLNET.AUTHENTICATION_SERVICES = (NTS)
NAMES.DIRECTORY_PATH = (LDAP,TNSNAMES)
NAMES.DEFAULT_DOMAIN = <domain_name>
SQLNET.AUTHENTICATION\u SERVICES=(NTS)
NAMES.DIRECTORY_PATH=(LDAP,TNSNAMES)
NAMES.DEFAULT_域=

首先将Visual Studio从图片中删除。您需要确认您的Oracle客户端已在计算机上正确配置

如果安装了Oracle连接工具,则应已安装
tnsping
。在命令行中,输入

tnsping <server_name>
tnsping
这将尝试使用tnsnames文件中指定的配置查找Oracle服务器(如果您的sqlnet文件配置为让Oracle使用tnsnames协议)。如果它找到了,它会告诉你它使用了什么方法。然后,您可以将此信息用于Visual Studio连接

确保您的sqlnet文件是正确的。您可以使用此文件告诉Oracle用于解析服务器的协议顺序(例如tnsnames、ldap等)。我的情况如下:

SQLNET.AUTHENTICATION_SERVICES = (NTS)
NAMES.DIRECTORY_PATH = (LDAP,TNSNAMES)
NAMES.DEFAULT_DOMAIN = <domain_name>
SQLNET.AUTHENTICATION\u SERVICES=(NTS)
NAMES.DIRECTORY_PATH=(LDAP,TNSNAMES)
NAMES.DEFAULT_域=

这通常意味着两件事之一

  • 您没有安装ODP.Net或缺少一些dll(不太可能)
  • 计算机上有多个oracle客户端版本,.net找不到正确的版本 转到计算机的系统路径,确保path语句中的第一个oracle路径指向正确的oracle客户端安装

    删除oracle

  • 如果运行,停止DTC服务和oracle mts服务
  • 删除所有oracle目录(C:\Program Files、C:\oracle、C:\App等)
  • 从path语句中删除Oracle(所有条目)
  • 删除任何环境变量
  • 删除本地计算机注册表和当前用户部分中的Oracle条目(如果存在)
  • 重新启动机器
  • 重新安装正确的版本

  • 这通常意味着两件事之一

  • 您没有安装ODP.Net或缺少一些dll(不太可能)
  • 计算机上有多个oracle客户端版本,.net找不到正确的版本 转到计算机的系统路径,确保path语句中的第一个oracle路径指向正确的oracle客户端安装

    删除oracle

  • 如果运行,停止DTC服务和oracle mts服务
  • 删除所有oracle目录(C:\Program Files、C:\oracle、C:\App等)
  • 从path语句中删除Oracle(所有条目)
  • 删除任何环境变量
  • 删除本地计算机注册表和当前用户部分中的Oracle条目(如果存在)
  • 重新启动机器
  • 重新安装正确的版本

  • 谢谢。我尝试了tnsping并获得以下结果:使用主机名适配器解析试图联系的别名(DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=)(ADDRESS=(PROTO COL=TCP)(HOST=165.91.176.54)(PORT=1521)))正常(0毫秒)这是否意味着它已正确配置?我必须使用主机名连接吗?我刚刚在Visual Studio的“添加连接”功能中使用我的用户名和密码测试了连接。另外,这是我的sqlnet文件sqlnet.AUTHENTICATION_SERVICES=(NTS)#NAMES.DIRECTORY_PATH=(TNSNAMES,EZCONNECT)我是否应该取消第二行的注释?如果tnsping返回,这意味着您的配置是正确的。您是否安装了Oracle Visual Studio工具(ODT)?或者您只是在开箱即用服务器资源管理器?如果您开始收到密码/无法连接问题(不是12514错误),您还应该将您的SQLNET.AuthneticationServices更改为以下SQLNET.AUTHENTICATION\u SERVICES=(无)。我不知道是否安装了Oracle Visual Studio工具,因为我没有参与安装过程。然而,我相信这个问题可能与我按照tsells的建议安装了2个版本的Oracle客户端有关。我应该继续卸载一个吗?因为我安装错了。谢谢。我尝试了tnsping并得到了以下结果:使用了主机名适配器来解析试图联系的别名(DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=)(ADDRESS=(PROTO COL=TCP)(HOST=165.91.176.54)(PORT=1521))OK(0毫秒)D