用同样的连接字符串,在C/S程序上就可以正常连接到Oracle数据库,而当在B/S架构的程序中运行时,就会出现ServerVersion = “ocon.ServerVersion”引发了“System.InvalidOperationException”类型的异常,而系统并不会抛出这个异常,只是抛出“ORA-12154: TNS: 无法解析指定的连接标识符”,这让我很疑惑,数据库和程序都在本地
以下是相关信息:
数据库版本:Oracle10g
开发工具:VS2010(注:之前给客户发布的.NetFramework2.0的版本,在服务器上正常运行了2年,然而最近客户服务器升级,换了台机器,我将原来的程序直接拷贝过去,竟然不好用了……)
我笔记本的配置: 处理器            英特尔 Core i3-2310M @ 2.10GHz 双核
                 主板              联想 KL5 (英特尔 HM65 芯片组)
                 内存              4 GB ( 三星 DDR3 1333MHz )
连接字符串:Data Source = orcl_ZhouJQ;User ID = cop;Password = cop,这套连接字符串我已经用了好几个项目,应该没什么可质疑的百度之后,有个说是内存过高的问题,不理解,不明白,也没办法用这个理由跟客户解释,请各位高人帮帮忙,看看是怎么回事吧,小弟着急,拜托了!

解决方案 »

  1.   

    server这个试试Data Source = orcl_ZhouJQ;User ID = cop;Password = cop
      

  2.   

    http://zhidao.baidu.com/question/176676428.html
      

  3.   


    应当是你的环境问题你看看 Oracle的连接 配置文件
      

  4.   

    对了,用PLSQL和自己写的winform程序都是可以访问的,所以让我很是不解
      

  5.   

    好像是连接oracle的dll版本问题,重新引用客户端的连接dll
      

  6.   

    呃…………能说的详细点吗?因为我新建的测试工程里面也有重新引用System.Data.OracleClient,但是仍旧是这个错误,请问楼上所说的oracle的dll是指的?
      

  7.   

    如果c/s 能连上,但是b/s连不上,并且都是采用相同的连接字符串,肯定还是在项目的bin下的连接oracle的dll的问题,你可以先仔细检查一下,或者直接拿你好使的c/s中的dll替换掉b/s中的dll
      

  8.   

    我自己一般编写.net 连接oracle项目都是用odp for .net (即用oralce官方提供的oralceAccess.dll)
    去连接oracle,这种要求web服务器上的dll版本和服务器要保持一致,不一致会出现LZ说的这种错误。你的项目是不是采用了这种方式?如果你不确定是不是采用了,可以看一下项目中的引用 using 下的是微软的名字空间,还是oracle公司的名字空间。如果是微软的,你可以考虑其他可能;如果是oracle公司的,你只要安装相对应数据库服务器的客户端版本后,搜索安装目录下的oralceAccess.dll
    用这个dll替换b/s项目下的dll即可改正错误
      

  9.   

    我using的都是System.Data.OracleClient命名空间的,应该是系统自带的……
      

  10.   

    orcl_ZhouJQ 这个指的是客户端oracle实例,你会不会把这个搞错了?
      

  11.   

    客户端 我指的是web服务器,或者你想安装b/s程序的地方
      

  12.   

    不会啊,我用C/S程序访问的也是同样的地址,不会有错的啊,C/S的就可以访问的……
      

  13.   

    System.Data.OracleClient, Version=4.0.0.0,是不是你这个版本对不上,b/s用的4.0,c/s 用的2.0 客户那里装的也是2.0?