有点诡异的问题,不过如果对 Asp.net 的安全模型了解比较深刻的,应该也不会觉得有那么不合理吧。。。
问题现象
- 使用 VS2008 的 Development Server 可以正常连接 Oracle 9i。
- 同样的程序,改为 IIS 运行后,提示 ORA-12154: TNS:could not resolve service name
解决方案
- 找到安装 Oracle 9i 时设置的 Oracle_Home 文件夹,例如:C:\oracle\ora92。
- 打开该文件夹属性中的安全选项卡。
- 从中删除 Authenticated Users,单击 确定 按钮;然后再添加 Authenticated Users,单击确定按钮。
- 重启。
随后的问题现象
- IIS 运行 Asp.net 程序可以正常连接 Oracle 9i。
- 同样的程序,装载到 SharePoint 中运行,提示 ORA-12154: TNS:could not resolve service name
解决方案(不确定)
- 找到 Oracle 9i 的连接配置文件,例如:C:\oracle\ora92\network\admin\tnsnames.ora。
- 打开该文件的安全选项卡。
- 添加 everyone,并且设置为 full control(我怒了)。
- 重启。