我有一个dot net可执行文件(在Visual Studio 2008中构建),它尝试从没有安装oracle客户端的计算机连接到远程oracle数据库。我得到的错误是
" ORA-12154 TNS无法解析指定的连接标识符"
从我到目前为止所读到的,我需要添加引用Oracle.DataAccess.dll。 Oracle.DataAccess无法在我的VS 2008下添加,所以我继续获得了MSI包的副本(来自Oracle站点的ODTwithODAC1020221.exe)以添加建议的DLL文件(我不确定我之间是否存在兼容性问题版本的VS / .NET 3.5 SP1和下载)。在我成功添加引用后,我得到了上述错误。
我可以在拥有oracle客户端的本地计算机上成功执行TNSPING。我还验证了TNSNAMES.ORA文件中的数据库描述。
以下是我用来连接oracle的代码:
Imports System.IO
Imports System.Xml
Imports System.Net
Imports System.Xml.Schema
Imports System.Text
Imports System.Data.Common.DataAdapter
Imports System.Data.Common.DbDataAdapter
Imports System.Net.Mail
Imports System.Threading.Thread
Imports System.Data.OleDb
Imports System.Data.SqlClient
Imports System.ServiceProcess
Imports System.Management
Imports System
Imports Oracle.DataAccess
Imports Oracle.DataAccess.Client
Module Module1
Public Sub Main()
Dim sql As String
Dim sql2 As String
Dim DATABASENAME1 As String = "Data Source=(DESCRIPTION =" _
+ " (ADDRESS = (PROTOCOL = TCP)(HOST=Server.Host.com)(PORT=1540))" _
+ ")" _
+ "(CONNECT_DATA = " _
+ "(SID=DATABASENAME1)));" _
+ "User Id=user;Password=password1;"
Dim conn1 As New OracleConnection()
conn1.ConnectionString = DATABASENAME1
'%%%%% Connect to database
Try
conn1.Open()
Console.WriteLine("Connection to Oracle database established!")
MsgBox("Connection to Oracle database established!")
Console.WriteLine(" ")
Catch ex As Exception
MsgBox("Not Connected" & ex.Message)
Console.WriteLine(ex.Message)
End
End Try
END SUB
END MODULE