解决:win7 ,64位下,vs 2008 ,oracle 数据库使用内置的web server 报ORA-12154: TNS: 无法解析指定的连接标识符
最近公司产品开始准备支持ORACLE 版本,在此过程中遇到不少问题.
在此标记.
1.ORA-12154: TNS: 无法解析指定的连接标识符 错误
这个错误比较常见,一般可能的原因如下(网上抄来):
1.先检查服务器端的监听服务是否打开,如果没有打开请启动其监听
客户端:tnsping <tns_name>
服务器Linux下:
#>lsnrctl status 查看监听状态
#>lsnrctl start 启动监听
2.通过Sql Plus连接一下试试,如果Sql Plus连接能成功,那就说明你的tnsnames.ora内容有错误
3.如果确保你的tnsnames.ora内容没有错误,那请将%ORACLE_HOME%\product\10.2.0\db_1\NETWORK\ADMIN目录下的所有文件删了,然后重新连接,一般就能解决了。
4.确保应用程序的路径没有特殊字符
我所遇到的问题是因为 vs2008的内置 web server 服务器 在win7 64下的 "Program Files (x86)" 目录下,包含了特殊符号 "("与")" ,所以会报错.
因此就想到 使用IIS 来进行调试,操作方法如下(网上抄来):
1.点击Web Project的右键属性->Start Options->Use custom server
base url: http://localhost/
2. 将IISDefault Web Server指向Web项目所在的目录
打开IIS, Default Web Site->右键属性->Home Directory,将Local Path改为项目根目录路径
3. 这时可以通过打开IE,地址栏输入: http://localhost/进行访问
4. 如果发生数据库异常,说明没有在数据库中添加ASP帐户
1) 先添加Server级别安全帐户
打开SQL Server2008,点击Security->右键->New Login
->Search->Advanced->Find Now->选中ASPNET用户->OK
2)再添加Database级别安全帐户
打开某个DB,点击Security->右键->New Login
->Search->Advanced->Find Now->选中ASPNET用户->OK
3) 最后添加Sequence的安全帐户
打开某个Sequence,点击Security->右键->New Login
->Search->Advanced->Find Now->选中ASPNET用户->OK
4) 把进程attach 到 aspnet_wp.exe
Tools->Attach to Process, 在列表中选择aspnet_wp.exe
5) 项目中设置断点,F5进行debug,F10单步调试.
按照上面的步骤操作,IIS 里可以正常浏览网站了,在VS2008 中设置好属性,并运行又报了个错误:
---------------------------
Microsoft Visual Studio
---------------------------
Unable to start debugging on the web server. The object identifier does not represent a valid object. (Exception from HRESULT: 0x800710D8)
Click Help for more information.
---------------------------
OK Help
---------------------------
网上的解决办法是在IIS 中将Windows 集成验证开启,但是在我的IIS 中没发现这个验证.于是想到可能IIS 没有完全安装,重新安装了一遍IIS,并将windows 授权勾上之后重新打开IIS,发现Windows 集成验证 已经有了.这个时候将之开启.
重新在vs2008 中运行项目,不再报错,问题解决!