当前位置:编程学习 > C#/ASP.NET >>

asp.net连接oracle数据库 失败……

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

最先是SQL PLUS成功,但是VS调试失败;
之后网上查找方案,修改了环境变量,卸载了ODP,删除了相关文件夹,注册表也修改过,最后调试通过了;
现在发现,部署到IIS上之后,还是报这个错,求大侠教我 --------------------编程问答-------------------- 自己顶一下先 --------------------编程问答-------------------- 1。验证tnsnames.ora文件中的别名和客户使用的服务名称。

Oracle数据库TNS条目

===========================

 OracleDB_Dev =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = server01.mydomain.com)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = OracleDB)

      (SERVER = DEDICATED)

    )

  )
 

在上面的tnsnames.ora文件别名= OracleDB_Dev

服务名称:OracleDB(实际的Oracle服务名[在SQL实例名称])

2。检查“管理员”在Oracle主文件夹下的sqlnet.ora文件[DIR:\ APP \产品\ 11.1.0 \ \ NETWORK \ ADMIN],并确保我们的样子NAMES.DIRECTORY_PATH TNSNAMES client_1

NAMES.DIRECTORY_PATH =(TNSNAMES,ONAMES,主机名)

3。验证您是否可以连接到Oracle SQL服务器使用机器安装Oracle客户端工具,例如“SQL开发”或“SQL Plus的”相同的用户ID /密码或TNS别名。

5。检查环境变量PATH“如果有tnsnames.ora中指定的文件的路径。

环境变量PATH的样本价值:

E:\app\product\11.1.0\client_1\bin;C:\Program Files\Business Objects\Common\3.5\bin\NOTES\;C:\Program Files\Business Objects\Common\3.5\bin\NOTES\DATA\;%Systemroot%\Microsoft.NET\Framework\v1.1.4322;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Dell\SysMgt\oma\bin;C:\Program Files\Microsoft SQL Server\80\Tools\BINN;C:\Program Files\Common Files\Microsoft Shared\web server extensions\60\TEMPLATE\ADMIN\1033\;C:\Program Files\Microsoft SQL Server\80\Tools\Binn\;C:\Program Files\Microsoft SQL Server\90\DTS\Binn\;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\Program Files\Microsoft SQL Server\90\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\;C:\Program Files\Microsoft Network Monitor 3\

注意:请确保该路径是一个有效的路径,并没有空间。

6。检查的关键“ORACLE_HOME”在注册表下HKEY_LOCAL_MACHINE \ SOFTWARE \ ORACLE \ KEY_OraClient11g_home1的价​​值,并确认它具有Oracle主的正道。

7。检查注册表项HKEY_LOCAL_MACHINE \ SOFTWARE \ ORACLE实现“TNS_ADMIN的”。如果它存在,然后确保它作为权值“DIR:\ APP \产品\ 11.1.0 \ client_1 \ NETWORK \ ADMIN”。如果你看不到的关键,然后创建密钥,并设置适当的值如下。

输入regedit - > HKEY_LOCAL_MACHINE->软件>甲骨文 - >右击新StringValue的和名称
TNS_ADMIN的和给价值的“X:\ APP \产品\ 11.1.0 \ client_1 \ NETWORK \ ADMIN”

注:这是不是必须的,但在某些情况下,这是固定的问题。

8。检查如果SQL Server启动帐户具有权限的Oracle Home。还收集过程监控日志和检查“拒绝访问”。如果我们能够找到tnsnames.ora文件,进程监视器日志应显示。

9。确保你没有安装多个Oracle家园或多个Oracle客户端。检查“HKEY_LOCAL_MACHINE \ SOFTWARE \ ORACLE实现\ ALL_HOMES \ HOME_COUNTER”键值。

10。检查如果Oracle OLE DB提供程序运行处理序。如果'是',然后再尝试运行的进程,看看是否能解决问题。

注意:您可以检查和验证如果MS OLE DB提供程序运行的注册表项HKEY_LOCAL_MACHINE \ SOFTWARE \ MICROSOFT \ MSSQLSERVER \供应商\接口MSDAORA处理序

11。你可以尝试收集SQL和Oracle服务器同时网络跟踪和检查,如果有两个服务器之间的任何通信。

12。尝试从SQL服务器使用的UDL连接到Oracle。使用相同的TNS名称。如果你得到了同样的错误,这意味着问题不在于具体SSMS或链接服务器。

创建和配置通用数据链接(UDL)文件

http://msdn.microsoft.com/en-us/library/e38h511e(VS.80)。ASPX

13。尝试指定所有数据源的信息,而不是使用TNS别名连接到Oracle数据库(这是一种方法来绕过tnsnames.ora文件,连接到Oracle时)。

--------------------编程问答-------------------- http://www.cnblogs.com/xiachufeng/archive/2010/08/02/1790409.html --------------------编程问答-------------------- http://social.msdn.microsoft.com/Forums/zh-CN/biztalkgeneral/thread/63e041cc-8da8-4a69-82fd-e5fca0047c3f
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,