1

我在 .Net(3.5) C# 和 Oracle Express 10g 中开发应用程序。当我尝试连接到数据库时,出现此错误:

从我得到的 OracleConnection 对象,在 ServerVersion 属性中:

ServerVersion = 'conn.ServerVersion' produjo una excepción de tipo 'System.InvalidOperationException'

并且,在捕获中:

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

我正在使用这个连接字符串:

Data Source=Angelo-HP/XE;User ID=MAPFRE;Password=123456;

我的 tnsnames.ora 已设置:

XE =
  (DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCP)(HOST = Angelo-HP)(PORT = 1521))
  (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = XE)
  )
)

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
  )
  (CONNECT_DATA =
    (SID = PLSExtProc)
    (PRESENTATION = RO)
  )
)

ORACLR_CONNECTION_DATA = 
(DESCRIPTION = 
  (ADDRESS_LIST = 
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE)) 
  ) 
  (CONNECT_DATA = 
    (SID = CLRExtProc) 
    (PRESENTATION = RO) 
  ) 
) 

我的 sqlnet.ora 是这样的:

SQLNET.AUTHENTICATION_SERVICES = (NTS) NAMES.DIRECTORY_PATH= (LDAP, TNSNAMES, HOSTNAME)

任何想法为什么我无法连接?

谢谢。

4

2 回答 2

0

如我的评论中所述,您应该将 Datasource-property 更改为 XE。

Data Source=XE;User ID=MAPFRE;Password=123456;

此外,您必须确保 tnsnames 中的标识符前面没有空格。

另一件事:如果您安装了多个 oracle-clients,则必须确保此条目位于正确的 tnsnames 中。

于 2012-09-17T06:31:05.700 回答
0

您的连接字符串被提及为

Data Source=Angelo-HP/XE;User ID=MAPFRE;Password=123456;

这意味着它正在寻找 Angelo-HP/XE 的 TNSNAME,它不在 TNS 名称中,因此您会收到错误消息

将其更改为

Data Source=XE;User ID=MAPFRE;Password=123456;
于 2012-09-17T06:11:42.440 回答