解决:win7 ,64位下,vs 2008 ,oracle 数据库使用内置的web server 报ORA-12154: TNS: 无法解析指定的连接标识符

时间:2021-05-15 17:13:51

最近公司产品开始准备支持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 中运行项目,不再报错,问题解决!