zoukankan      html  css  js  c++  java
  • 程序连接Oracle数据库出现未找到提供程序.该程序可能未正确安装错误提示

    好不容易使用plsql可以成功连上数据库了,应用程序连接数据库却出现了问题

    其实解决这个问题也简单:

    1.  查看oracle安装目录下的BIN目录,E:appAdministratorproduct11.1.0db_1BIN
    发现有OraOLEDB11.dll这个文件
    解决方法:
    注册OraOLEDB11.dll
    注册方法:
    reg
    svr32  OraOLEDB11.dll

    发现问题依旧

    Provider=OraOLEDB.Oracle.1 未找到提供程序.该程序可能未正确安装.

    2.

    在命令提示符下,键入   cd   %systemroot%:Program   FilesCommon   FilesSystemOle。      
    在命令提示符下,键入   regsvr32   sqloledb.dll,
    regsvr32 oledb32.dll

    这下应用程序连接数据库就成功。

    我怀疑这个问题的根本原因还是在于sqloledb.dll, oledb32.dll 这两个dll没有注册导致的。

    3. 对于64位数据库需要配置32位客户端的PATH环境变量:

    System.Data.OracleClient所指向的是PATH环境变量下的oci.dll。因此,我们只要让程序能够找到64位的oci.dll就可以了。方法如下:

    1. 下载instantclient-basic-win-x86-64-11.1.0.7.0.zip,并解压,如C:instantclient-basic-win-x86-64-11.1instantclient_11_1(这个部分也是必须的,根据实际情况的不同进行修改)。

    2. 在系统的环境变量PATH中加入以上路径。

    之后重启操作系统(这个是必须的,我弄了一下午没有搞好,结果重启一下马上就好了),程序会依照PATH路径寻找oci.dll,如果遇到32位的oci.dll会自动略过,找到64位的oci.dll就能连接上数据库了。

    4. 

       IIS服务器报错:System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本。

    出错的原因:

    1.虽然报的是需要安装客户端8.1.7及以上版本,实际是.net账户没有访问Oraclein文件夹的权限

    2.在 Windows Server 2003/2008 的 NTFS系统中提供了高级的访问安全性,FAT32系统也许没有这个问题。

    解决办法如下:

    我用Windows Server 2008 为例 Windows Server 2003 是一样的

    1.打开安装有Oracle客户端的电脑,在安装目录 C:oracleora90BIN 文件夹上右键-》安全选项卡-》点击  编辑---》添加。

    2.点击“查找范围”,在下面显示的账户中选择“NTWORK SERVICE”  ----将“读取和执行”的权限都赋给他(如果不行就把完全控制给他,这样不安全),子文件夹继承此权限,确定。

    3.打开“服务器管理器”-》配置-》 本地用户和组-》组-》adminisgrators-》将Network Service 添加进来

    4.重新启动IIS,在“运行”中输入“IISRESET”。

    还有一种情况就是:

    IIS设置为64位模式下运行,改为32位模式这个问题就解决了

    应用程序池 -> 高级设置 ->启用32位应用程序  = TRUE

  • 相关阅读:
    TreeView控件
    俄罗斯套娃
    c#文件操作
    c# 操作excle
    vs2010启动越来越慢解决方法
    c# 操作excle[转]
    c# 命名空间别名
    C# openfiledialog的使用
    c# 获取项目根目录方法
    jquery操作复选框(checkbox)的12个小技巧总结
  • 原文地址:https://www.cnblogs.com/liflying/p/4362302.html
Copyright © 2011-2022 走看看