Asp.net 连接 Oracle 9i 时提示 ORA-12154: TNS:could not resolve service name

有点诡异的问题,不过如果对 Asp.net 的安全模型了解比较深刻的,应该也不会觉得有那么不合理吧。。。

问题现象

  1. 使用 VS2008 的 Development Server 可以正常连接 Oracle 9i。
  2. 同样的程序,改为 IIS 运行后,提示 ORA-12154: TNS:could not resolve service name

解决方案

  1. 找到安装 Oracle 9i 时设置的 Oracle_Home 文件夹,例如:C:\oracle\ora92。
  2. 打开该文件夹属性中的安全选项卡。
  3. 从中删除 Authenticated Users,单击 确定 按钮;然后再添加 Authenticated Users,单击确定按钮。
  4. 重启。

随后的问题现象

  1. IIS 运行 Asp.net 程序可以正常连接 Oracle 9i。
  2. 同样的程序,装载到 SharePoint 中运行,提示 ORA-12154: TNS:could not resolve service name

解决方案(不确定)

  1. 找到 Oracle 9i 的连接配置文件,例如:C:\oracle\ora92\network\admin\tnsnames.ora。
  2. 打开该文件的安全选项卡。
  3. 添加 everyone,并且设置为 full control(我怒了)。
  4. 重启。

posted on 2009-03-07 23:07  CsharpStyle  阅读(2669)  评论(0编辑  收藏  举报