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_NAME
是Worker
和<database service name>
。
注意:我没有访问服务器的权限,只有这个视图的凭据。
我找到了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=****)));"
谢谢你的帮助