应用程序仅升级到Oracle 12.2.0.1。下载Oracle 12.2.0.1客户端,还尝试了ODAC122010XCOPY_X64.ZIP,但出错了相同的消息"'无法在dll'oraops12.dll中找到名为'opsconisdrcpeNabled'的入口点'
也将ORAOPS12.DLL添加到输出文件夹中。''
这是跟踪堆栈
'Just My Code' is enabled.
'ABC.exe' (CLR v4.0.30319: ABC.exe): Loaded 'C:WINDOWSMicrosoft.NetassemblyGAC_MSILSystem.ServiceModelv4.0_4.0.0.0__b77a5c561934e089System.ServiceModel.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'ABC.exe' (CLR v4.0.30319: ABC.exe): Loaded 'C:WINDOWSMicrosoft.NetassemblyGAC_64System.Datav4.0_4.0.0.0__b77a5c561934e089System.Data.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'ABC.exe' (CLR v4.0.30319: ABC.exe): Loaded 'C:WINDOWSMicrosoft.NetassemblyGAC_MSILSystem.Runtime.Serializationv4.0_4.0.0.0__b77a5c561934e089System.Runtime.Serialization.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'ABC.exe' (CLR v4.0.30319: ABC.exe): Loaded 'E:XYZNewMsSourcebinDebugApplicationXYZ.nlog.dll'. Symbols loaded.
'ABC.exe' (CLR v4.0.30319: ABC.exe): Loaded 'E:XYZNewMsSourcebinDebugApplicationXYZ.common.dao.dll'. Symbols loaded.
'ABC.exe' (CLR v4.0.30319: ABC.exe): Loaded 'E:XYZNewMsSourcebinDebugApplicationXYZ.model.dll'. Symbols loaded.
Created ConMan in NcscRendererBase, DBName = XYZ user = logging, PW = if7zW46qvjs=, Rac = False
'ABC.exe' (CLR v4.0.30319: ABC.exe): Loaded 'C:WINDOWSMicrosoft.NetassemblyGAC_64Oracle.DataAccessv4.0_4.122.1.0__89b483f429c47342Oracle.DataAccess.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'ABC.exe' (CLR v4.0.30319: ABC.exe): Loaded 'C:WINDOWSMicrosoft.NetassemblyGAC_64System.Transactionsv4.0_4.0.0.0__b77a5c561934e089System.Transactions.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'ABC.exe' (CLR v4.0.30319: ABC.exe): Loaded 'C:WINDOWSMicrosoft.NetassemblyGAC_64Oracle.DataAccessv4.0_4.121.2.0__89b483f429c47342Oracle.DataAccess.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'ABC.exe' (CLR v4.0.30319: ABC.exe): Loaded 'C:WINDOWSMicrosoft.NetassemblyGAC_64System.EnterpriseServicesv4.0_4.0.0.0__b03f5f7f11d50a3aSystem.EnterpriseServices.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
Exception thrown: 'System.EntryPointNotFoundException' in Oracle.DataAccess.dll
Exception thrown: 'System.EntryPointNotFoundException' in ApplicationXYZ.dbaccess.dll
类型" system.entrypointnotfoundexception"类型的例外发生在applicationxyz.dbaccess.dll中,但在用户代码中未处理无法在dll'oraops12.dll中找到名为" opsconisdrcpenabled"的入口点。
有什么建议如何解决这个问题?
我认为问题在这里:
加载'c: windows microsoft.net assembly gac_64 oracle.dataaccess v4.0_ 4.122.1.0 __ 89b483f429c4733c47342
加载'c: windows microsoft.net assembly gac_64 oracle.dataaccess v4.0_ 4.121.2.0 __ 89B483F429C477342
看来您的升级到12.2。OraOps12.dll
的版本似乎与Oracle.DataAccess.dll
的版本不匹配
用gacutil.exe
仔细检查您的GAC中安装的内容。您可以使用这些命令正确配置GAC(选择与您相关的行)
set Oracle_x64=c:oracleproduct12.1Client_x64odp.net
set OraProvCfg_x64=%Oracle_x64%bin4OraProvCfg.exe
set Oracle_x86=c:oracleproduct12.1Client_x86odp.net
set OraProvCfg_x86=%Oracle_x86%bin4OraProvCfg.exe
IF EXIST "%Oracle_x64%bin2.xOracle.DataAccess.dll" "%OraProvCfg_x64%" /action:gac /providerpath:%Oracle_x64%bin2.xOracle.DataAccess.dll
IF EXIST "%Oracle_x64%PublisherPolicy2.xPolicy.2.102.Oracle.DataAccess.dll" "%OraProvCfg_x64%" /action:gac /providerpath:%Oracle_x64%PublisherPolicy2.xPolicy.2.102.Oracle.DataAccess.dll
IF EXIST "%Oracle_x64%PublisherPolicy2.xPolicy.2.111.Oracle.DataAccess.dll" "%OraProvCfg_x64%" /action:gac /providerpath:%Oracle_x64%PublisherPolicy2.xPolicy.2.111.Oracle.DataAccess.dll
IF EXIST "%Oracle_x64%PublisherPolicy2.xPolicy.2.112.Oracle.DataAccess.dll" "%OraProvCfg_x64%" /action:gac /providerpath:%Oracle_x64%PublisherPolicy2.xPolicy.2.112.Oracle.DataAccess.dll
IF EXIST "%Oracle_x64%PublisherPolicy2.xPolicy.2.121.Oracle.DataAccess.dll" "%OraProvCfg_x64%" /action:gac /providerpath:%Oracle_x64%PublisherPolicy2.xPolicy.2.121.Oracle.DataAccess.dll
IF EXIST "%Oracle_x64%PublisherPolicy2.xPolicy.2.122.Oracle.DataAccess.dll" "%OraProvCfg_x64%" /action:gac /providerpath:%Oracle_x64%PublisherPolicy2.xPolicy.2.122.Oracle.DataAccess.dll
IF EXIST "%Oracle_x64%bin4Oracle.DataAccess.dll" "%OraProvCfg_x64%" /action:gac /providerpath:%Oracle_x64%bin4Oracle.DataAccess.dll
IF EXIST "%Oracle_x64%PublisherPolicy4Policy.4.112.Oracle.DataAccess.dll" "%OraProvCfg_x64%" /action:gac /providerpath:%Oracle_x64%PublisherPolicy4Policy.4.112.Oracle.DataAccess.dll
IF EXIST "%Oracle_x64%PublisherPolicy4Policy.4.121.Oracle.DataAccess.dll" "%OraProvCfg_x64%" /action:gac /providerpath:%Oracle_x64%PublisherPolicy4Policy.4.121.Oracle.DataAccess.dll
IF EXIST "%Oracle_x64%PublisherPolicy4Policy.4.122.Oracle.DataAccess.dll" "%OraProvCfg_x64%" /action:gac /providerpath:%Oracle_x64%PublisherPolicy4Policy.4.122.Oracle.DataAccess.dll
IF EXIST "%Oracle_x86%bin2.xOracle.DataAccess.dll" "%OraProvCfg_x86%" /action:gac /providerpath:%Oracle_x86%bin2.xOracle.DataAccess.dll
IF EXIST "%Oracle_x86%PublisherPolicy2.xPolicy.2.102.Oracle.DataAccess.dll" "%OraProvCfg_x86%" /action:gac /providerpath:%Oracle_x86%PublisherPolicy2.xPolicy.2.102.Oracle.DataAccess.dll
IF EXIST "%Oracle_x86%PublisherPolicy2.xPolicy.2.111.Oracle.DataAccess.dll" "%OraProvCfg_x86%" /action:gac /providerpath:%Oracle_x86%PublisherPolicy2.xPolicy.2.111.Oracle.DataAccess.dll
IF EXIST "%Oracle_x86%PublisherPolicy2.xPolicy.2.112.Oracle.DataAccess.dll" "%OraProvCfg_x86%" /action:gac /providerpath:%Oracle_x86%PublisherPolicy2.xPolicy.2.112.Oracle.DataAccess.dll
IF EXIST "%Oracle_x86%PublisherPolicy2.xPolicy.2.121.Oracle.DataAccess.dll" "%OraProvCfg_x86%" /action:gac /providerpath:%Oracle_x86%PublisherPolicy2.xPolicy.2.121.Oracle.DataAccess.dll
IF EXIST "%Oracle_x86%PublisherPolicy2.xPolicy.2.122.Oracle.DataAccess.dll" "%OraProvCfg_x86%" /action:gac /providerpath:%Oracle_x86%PublisherPolicy2.xPolicy.2.122.Oracle.DataAccess.dll
IF EXIST "%Oracle_x86%bin4Oracle.DataAccess.dll" "%OraProvCfg_x86%" /action:gac /providerpath:%Oracle_x86%bin4Oracle.DataAccess.dll
IF EXIST "%Oracle_x86%PublisherPolicy4Policy.4.112.Oracle.DataAccess.dll" "%OraProvCfg_x86%" /action:gac /providerpath:%Oracle_x86%PublisherPolicy4Policy.4.112.Oracle.DataAccess.dll
IF EXIST "%Oracle_x86%PublisherPolicy4Policy.4.121.Oracle.DataAccess.dll" "%OraProvCfg_x86%" /action:gac /providerpath:%Oracle_x86%PublisherPolicy4Policy.4.121.Oracle.DataAccess.dll
IF EXIST "%Oracle_x86%PublisherPolicy4Policy.4.122.Oracle.DataAccess.dll" "%OraProvCfg_x86%" /action:gac /providerpath:%Oracle_x86%PublisherPolicy4Policy.4.122.Oracle.DataAccess.dll
而不是OraProvCfg.exe
,也可以使用gacutil.exe
。