关于IIS部署时出现“System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本”的问题解决摘要
系统环境:windows2008 X64
IIS版本:iis7
oracle客户端版本:11g,另外装了32位的客户端。
网站.net framework版本: 4.0
目前状况,IIS可以正常运行,程序页面没有调用到数据库的可以正常运行。调用到数据库的,就报 “System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本”错误。
oracle客户端可以正常运行,服务器上安装了PLSQL,可以正常连接。
================================================
网上解决办法:原文地址
System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本
在用VSTS2005/2008+Oracle9做环境连接Oracle时候,在VS 开发服务器运行正常,但IIS服务器调试和部署会报错!
IIS服务器报错:System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本。
出错的原因:
1.虽然报的是需要安装客户端8.1.7及以上版本,实际是.net账户没有访问Oracle\bin文件夹的权限
2.在 Windows Server 2003/2008 的 NTFS系统中提供了高级的访问安全性,FAT32系统也许没有这个问题。
解决办法如下:
我用Windows Server 2008 为例 Windows Server 2003 是一样的
1.打开安装有Oracle客户端的电脑,在安装目录 C:\oracle\ora90\BIN 文件夹上右键-》安全选项卡-》点击 编辑---》添加。
2.点击“查找范围”,在下面显示的账户中选择“NTWORK SERVICE” ----将“读取和执行”的权限都赋给他(如果不行就把完全控制给他,这样不安全),子文件夹继承此权限,确定。
3.打开“服务器管理器”-》配置-》 本地用户和组-》组-》adminisgrators-》将Network Service 添加进来
4.重新启动IIS,在“运行”中输入“IISRESET”。
================================================
方法二:原文地址
1.一定要关闭Windows 防火墙;
2.找到ORACLE_HOME文件夹(服务器端是D:\oracle)。点击右键,选属性--安全,在组或用户栏中选“Authenticated Users”,在权限列表中把“读取和运行”的权限去掉,再按应用(据说这是Oracle的一个Bug,在9i版本中也存在);重新选上“读取和运行”权限,点击应用;选权限框下面的“高级”按钮,确认 “Authenticated Users”后面的应用于是“该文件夹、子文件夹及文件”,按确定把权限的更改应用于该文件夹;
3.重新启动计算机,让权限设置生效(也可以不重新启动,在运行里运行cmd打开命令窗口,运行命令iisreset,重启下IIS,就可以正常访问);
4.最后客户端如果还不能访问,(我客户端用的是VS2005,用的是其内置的IIS测试代码)重新启动VS2005即可。
================================================
以上方法我在尝试了之后,还是不可以使用。
最后,我重装了以下Oracle客户端之后,发现可以正常运行了。
Oracle Database Instant Client 11g 11.2.0.3.0 x64 http://www.hanzify.org/software/13722.html
Oracle Database Instant Client 11g 11.2.0.3.0 x86 修正 http://www.hanzify.org/software/13506.html
后来比较了一下,网上的Oracle精简版客户端中没有sqlnet.ora 文件。
精简版安装注意事项:
1.文件夹路径不要包含特殊字符
2.配置系统环境变量
NLS_LANG
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
ORACLE_HOME
D:\Program Files\orcale10g (oracle安装目录)
TNS_ADMIN
D:\Program Files\orcale10g (tnsnames.ora文件所在的路径)
3.添加tnsname.ora文件到目录
4.添加sqlnet.ora文件到目录
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?