`
guowee
  • 浏览: 173680 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

ASP.NET Oracle 驱动 配置中的错误更改

    博客分类:
  • .NET
阅读更多
在用VS.NET2005+Oracle9.2进行开发的时候,在本地测试可以通过,但是在服务器上不能实现(复制网站,发布网站都不行),报错的具体内容,没记下来,大概就是:
在网上查询了很长时间也没有见效,后来综合网上的很多方法,终于测试成功,现分享一下。
出错的原因:
1. 虽然报的是需要安装客户端 8.1.7 及以上版本但是并非这个,而是 .net 账户没有访问 Oracle\bin 文件夹的权限
2.windows 2003 操作系统安装在 NTFS 格式的盘中,如果是 FAT32 也就没有这个问题,看来 NTFS 格式在安全性这方面作的确实出色。
废话少说,还是看看我的解决方法吧。
1. Oracle\bin 文件夹上右键 ------- 共享和安全 ------ 安全 ----- 点击“添加”按钮,出现下面的界面
2. 点击“高级” ---- “立即查找”,在下面显示的账户中选择“ NTWORK SERVICE ( 注意: IIS6 aspnet 的账户是 NTWORK SERVICE ;而在 IIS5 中是 aspnet 。总之,在搜索出的账户中有这两个账户中的哪一个就选哪一个,因为我没有见过这两个账户共存的,哈哈,估计不能共存吧!这个市个人见解不代表 Microsoft 的意见 )
---- 将所有的权限都赋予 ---- 确定。
3. 在“计算机管理” ( 哈哈,如果不知道怎么进入那就没办法说了 )----- 双击右侧的 Administrators------ 将上一步搜索出来的账户添加进去。
4. 重新启动 IIS 即可。可以在“运行”中输入“ IISRESET ”。
注意:上面这些是设置权限方面的,如果配置完上面这些报 ORA-12154 的错误,需要在服务器上配置“ Net Configuration Assistant ”。
测试的环境:Win2003(NTFS)+Oracle9.2+Vs.net2005

 

 

 

附录:解决“需要Oracle 客户端软件8.1.7 或更高版本”的方法
<!---->
<!---->在oracle/bin目录,
<!---->1、加入asp.net machine account(aspnet) 用户帐号;
<!---->2、授完全权限;
<!---->3、将aspnet帐号加入administrators用户组里,并重起iis。
<!---->注意,3个步骤一个都不能少。
<!---->
<!---->最后oracle/bin目录的用户群如下:
asp.net machine account
administrator
authenticated users

 

我用的delphi6.0中的ado连接已与oracle数据库配置好连接的odbc数据源,结果与ado连接的adoquery会出现“ora-12154,TNS:无法处理服务器名”的错误。请问高手如何解决此问题?  
  附:程序是在oracle客户端开发的,现在在服务器上就会出现以上错误。  
  程序是在oracle客户端开发的,现在在服务器上运行就会出现以上错误。服务器没有安装oracle客户端程序.  
  服务器tnsnames.ora如下:  
  CYWC   =  
      (DESCRIPTION   =  
          (ADDRESS_LIST   =  
              (ADDRESS   =   (PROTOCOL   =   TCP)(HOST   =   yjl)(PORT   =   1521))  
          )  
          (CONNECT_DATA   =  
              (SERVICE_NAME   =   oracle.net)  
          )  
      )  
   
  ORACLE   =  
      (DESCRIPTION   =  
          (ADDRESS_LIST   =  
              (ADDRESS   =   (PROTOCOL   =   TCP)(HOST   =   yjl)(PORT   =   1521))  
          )  
          (CONNECT_DATA   =  
              (SERVICE_NAME   =   oracle.net)  
          )  

 

从这几个方面来检查一下:  
  1.是由于DOMAIN设置不正确  
  1.1在tnsname中加了DOMAIN,但在sqlnet中没有配置  
  如  
  DEV1.WORLD   =    
  (DESCRIPTION   =    
  (ADDRESS_LIST   =    
  (ADDRESS   =    
  (PROTOCOL   =   TCP)    
  (Host   =   145.45.78.56)    
  (Port   =   1521)    
  )    
  )    
  (CONNECT_DATA   =   (SID   =   ORCL)    
  )    
  )  
  而sqlnet.ora  
  #NAMES.DEFAULT_DOMAIN=world   --被注释掉了  
  ~~~~~~~~~  
  将注释去掉  
  ~~~~~~~~~  
  1.2如果现象还是存在,那可能是由于脚本中有CTRL-M   (^M)   或者CTRL-R   (^R)  
  比如我们在ultraedit上编辑了文件,用ftp的bin方式传过去(或者相反),那么就可能包含了这些字符。所以建议用ultraedit的conversions=>dos   to   unix   并在传送ftp时用ascii模式  
   
  1.3在sqlnet.ora中的NAMES.DIRECTORY_PATH将TNSNAMES放在最前面  
  如  
  NAMES.DIRECTORY_PATH=(TNSNAMES)  
  NAMES.DIRECTORY_PATH=(TNSNAMES,   HOSTNAME)    
   
  1.4  
  echo   $TNS_ADMIN查看是否有数据,确保设置正确的路径  
   
  1.5设置AUTOMATIC_IPC   =   OFF  
   
  1.6确保sqlnet.ora和tnsname.ora有正确的权限(777)  

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics