• Oracle.DataAccess.Client.OracleConnection”的类型初始值设定项引发异常,确保32位还是64位,要版本一致


    Oracle.DataAccess.Client.OracleConnection”的类型初始值设定项引发异常

    项目中WCFsConsoleHost服务宿主报"Oracle.DataAccess.Client.OracleConnection”的类型初始值设定项引发异常"错误,如图
    在这里插入图片描述
    在这里插入图片描述

    发现同事的电脑上正常运行无问题,详细对比一下区别后,才发现我的电脑设置服务生成路径为bin下会报此问题,而设置服务生成到服务专用目录并无此问题。逐步对比文件才发现bin和服务专用目录缺少OraOps11w.dll文件。
    得出结论:
    1.服务宿主项目或服务业务层项目引用Oracle.DataAccess的32位或者64位是否与项目版本一致。不一致会报: 未能加载文件或程序集“Oracle.DataAccess, Version=4.112.4.0, Culture=neutral, PublicKeyToken=89b483f429c47342”或它的某一个依赖项。试图加载格式不正确的程序。 一般,我们如果引用的dll版本没有问题,这个服务宿主项目改成对应Any Cpu或者对应正确版本即可。不报此错,1结论跳过。
    在这里插入图片描述
    2.查看引用此dll文件的路径文件夹,查看里面是否有Oracle.DataAccess.dll(引用的文件),OraOps11w.dll(Oracle.DataAccess.dll的依赖文件,必须有,缺少就会报类型初始值设定项引发异常错误。)
    PS:目前我遇到的情况是只依赖了这个dll,可能每个人遇到的问题不一样,最好是把下载所有的相关依赖文件和Oracle.DataAccess.dll都放在同一目录里。另外如果缺少文件,网上下载时候注意oracle版本号和版本位数x86还是x64都要和自己之前的文件还有项目保持一致。

    在这里插入图片描述
    3.后来又碰到过一次这样的问题, 发现我跟目录里以上文件都齐全, 可还是报错了, 迷糊了一会儿, 最后才发现 ,我调试时候启动的服务的bin文件夹里的文件并不齐全, 所以要么根目录这些文件覆盖到bin里(比较麻烦,有可能重新生成又给删少了), 要么把服务启动设置为"启动外部程序" ,地址为最齐全的根目录(前提宿主文件在根目录也能独立启动).

    在这里插入图片描述

    4.声明一下,这和你本地有没有装客户端版本和服务端版本无半毛钱关系。

    https://blog.csdn.net/spw55381155/article/details/116982830
  • 相关阅读:
    算法笔记 --- Selection Sort
    算法笔记 --- Radix Sort
    算法笔记 --- Quick Sort
    算法笔记 --- Merge Sort
    算法笔记 --- Insertion Sort
    算法笔记 --- Heap Sort
    算法笔记 --- Counting Sort
    算法笔记 --- Bubble Sort
    算法笔记 --- Tree Travers
    javaweb_JDBC
  • 原文地址:https://www.cnblogs.com/sunny3158/p/16593170.html
Copyright © 2020-2023  润新知