win7x64 连接oracle 客户端 vs 2010调试 提示“ORA-12154: TNS: 无法解析指定的连接标识符
”
在debug的时候出现以下问题:
==========之后就可以调试了
自己试过不管用,用了Porcesse Explorer看了,看来是(x86)在命令行里的影响,先卸载vs2010更换一下安装目录试试
重装之后并不管用,于是参考了
我使用了process explorer找出了WebServer4.0.EXE的Command line然后将program file (x86)改成短格式
"C:PROGRA~2Common FilesMicrosoft
SharedDevServer10.0WebDev.WebServer40.exe"
然后修改网站“属性页”中“服务器”选中“使用自定义服务器”然后再文本框中填入url(http://localhost:50266/WebSite/)
终于解决了。
今天又解决一个十分棘手的问题,我们有个专案原本在x86 机器上开发( 资料库采用Oracle ),最近由于主机升级到Windows 7 (x64) 后发现程式出问题,当在Visual Studio 中按下F5进行测试除错时完全无法连接到资料库,而且一整个很没道理,看看我如何解决这个棘手的问题吧。
我遇到的错误如下:
ORA-12154: TNS: 无法解析指定的连线ID
ORA-12154:TNS:could not resolve service name
错误发生点是在「建立连线」的程式码,只要Open Connection 就会立即出错。
这问题首先是出在我同事的身上,他主机在一个多月前换成Windows Server 2008 (x64),而我是最近才换到Windows 7 (x64),问题跟他一模一样,因此也花了好多时间研究分析,直到刚刚跟黑大讨论一番后终于给我找出解法。
先说说我电脑的安装步骤与执行环境:
想破头无法解决时,黑大建议我用最简单的方式测试资料库连线(如下范例),虽然我自己已经测试数十遍了,但我还是不铁齿,听话的再测一次( 魔鬼总在细节里):
这时我才想到将TNSNAME 的完整定义移到这里试试看,请看如下范例:
这就神奇啦,错误讯息竟然不一样,,中英文错误讯息如下:
ORA-6413: 连线未被开启
ORA-06413: Connection not open
多一条错误讯息就多一条线索,对追Code 绝对有帮助。( 好像在玩侦探游戏一样^^ )
这时就被我搜出一篇文章ORA-06413: Connection not open.答案就在其中,原来错误发生的原因原来是我的ASP.NET开发伺服器( WebDev.WebServer.EXE )执行档的路径有特殊字元导致:
C:Program Files (x86)Common FilesMicrosoft SharedDevServer9.0WebDev.WebServer.EXE
就是这该死的(x86)出现在路径中,导致我的ASP.NET怎样都无法连线到程式,为了验证确定就是这问题,我试着利用Process Explorer找出WebDev.WebServer.EXE的启动参数:
并重新透过cmd.exe (命令提示字元)启动WebDev.WebServer.EXE,这时故意用「短目录」启动ASP.NET开发伺服器,如下指令:
"C:
E" /port:5970 /path:"D:XXXXXXXWebsite"
/vpath:"/"
神奇的事这就样发生,Oracle 资料库竟然真的连上了!!
我的解决之道
本次除错心得
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8603184/viewspace-1117659/ ,如需转载,请注明出处,否则将追究法律责任。