ASP.. net / c#连接Oracle数据库

本文关键字:Oracle 数据库 连接 net ASP | 更新日期: 2023-09-27 18:17:04

我需要访问oracle服务器上的一个视图与ASP。网的网站。如果我通过visual studio调试网站(在VS2012中按F5),但当我转到本地IIS (LocalHost/)上托管的版本时,我得到此错误:

Oracle.DataAccess.Client.OracleException: ORA-12154: TNS:could not resolve the connect identifier specified

我发现的很多信息都与已弃用的System.Data.OracleClient有关,我使用的是Oracle.DataAccess.dll文件版本4.112.3.0,汇编版本2.112.3.0。

我将appool设置为Enable 32-Bit Application=True,基于其他一些有类似问题的人,我认为其他一切都是默认设置。

我已经尝试使用gacutil来确保它安装在gac中。

我还做了一个小的winForms应用程序,它可以工作并且可以访问数据。

我已经尝试了几个连接字符串:

这个有效:

"Data Source=SOURCE;Persist Security Info=True;Password=****;User Id=****;"

这个不工作,我不能找出一个有效的SERVICE_NAME:

"user id=****;password=****;data source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=****)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=****)));"

我总是得到这个错误:

Oracle.DataAccess.Client.OracleException: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

where I've looking for SERVICE_NAME

我检查了我能够与第一个连接字符串建立的连接,SERVICE_NAME是空白或sys$users,这取决于我运行的查询。

我找到了三个名为tnsnames.ora的文件;一个是完全空白的,另外两个中的SERVICE_NAMEWorker<database service name>

注意:我没有访问服务器的权限,只有这个视图的凭据。

ASP.. net / c#连接Oracle数据库

我找到了SERVICE_NAME: select sys_context('userenv','db_name') from dual;,并使用了问题中的第二个连接字符串:

"user id=****;password=****;data source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=****)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=****)));"

谢谢你的帮助