'在DLL'OraOps12.dll'中找不到名为'OpsConIsDRCPEnabled'的入口点-Oracle 12c

时间:2019-03-13 17:47:18

标签: c# oracle dll

该应用程序只需升级到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:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.ServiceModel\v4.0_4.0.0.0__b77a5c561934e089\System.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:\WINDOWS\Microsoft.Net\assembly\GAC_64\System.Data\v4.0_4.0.0.0__b77a5c561934e089\System.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:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Runtime.Serialization\v4.0_4.0.0.0__b77a5c561934e089\System.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:\XYZ\New\MsSource\bin\Debug\ApplicationXYZ.nlog.dll'. Symbols loaded.
'ABC.exe' (CLR v4.0.30319: ABC.exe): Loaded 'E:\XYZ\New\MsSource\bin\Debug\ApplicationXYZ.common.dao.dll'. Symbols loaded.
'ABC.exe' (CLR v4.0.30319: ABC.exe): Loaded 'E:\XYZ\New\MsSource\bin\Debug\ApplicationXYZ.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:\WINDOWS\Microsoft.Net\assembly\GAC_64\Oracle.DataAccess\v4.0_4.122.1.0__89b483f429c47342\Oracle.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:\WINDOWS\Microsoft.Net\assembly\GAC_64\System.Transactions\v4.0_4.0.0.0__b77a5c561934e089\System.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:\WINDOWS\Microsoft.Net\assembly\GAC_64\Oracle.DataAccess\v4.0_4.121.2.0__89b483f429c47342\Oracle.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:\WINDOWS\Microsoft.Net\assembly\GAC_64\System.EnterpriseServices\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.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

ApplicationXYZ.dbaccess.dll中发生类型为'System.EntryPointNotFoundException'的异常,但未在用户代码中处理 在DLL“ OraOps12.dll”中找不到名为“ OpsConIsDRCPEnabled”的入口点。

任何建议如何解决此问题?

1 个答案:

答案 0 :(得分:1)

我认为问题出在这里

  

已加载'C:\ WINDOWS \ Microsoft.Net \ assembly \ GAC_64 \ Oracle.DataAccess \ v4.0_ 4.122.1.0 __ 89b483f429c47342 \ Oracle.DataAccess.dll'

     

已加载'C:\ WINDOWS \ Microsoft.Net \ assembly \ GAC_64 \ Oracle.DataAccess \ v4.0_ 4.121.2.0 __ 89b483f429c47342 \ Oracle.DataAccess.dll'

好像没有正确升级到12.2。 OraOps12.dll的版本似乎与Oracle.DataAccess.dll的版本不匹配

使用gacutil.exe仔细检查GAC中安装了什么。您可以使用以下命令正确配置GAC(选择与您相关的行)

set Oracle_x64=c:\oracle\product\12.1\Client_x64\odp.net
set OraProvCfg_x64=%Oracle_x64%\bin\4\OraProvCfg.exe

set Oracle_x86=c:\oracle\product\12.1\Client_x86\odp.net
set OraProvCfg_x86=%Oracle_x86%\bin\4\OraProvCfg.exe

IF EXIST "%Oracle_x64%\bin\2.x\Oracle.DataAccess.dll" "%OraProvCfg_x64%" /action:gac /providerpath:%Oracle_x64%\bin\2.x\Oracle.DataAccess.dll
IF EXIST "%Oracle_x64%\PublisherPolicy\2.x\Policy.2.102.Oracle.DataAccess.dll" "%OraProvCfg_x64%" /action:gac /providerpath:%Oracle_x64%\PublisherPolicy\2.x\Policy.2.102.Oracle.DataAccess.dll
IF EXIST "%Oracle_x64%\PublisherPolicy\2.x\Policy.2.111.Oracle.DataAccess.dll" "%OraProvCfg_x64%" /action:gac /providerpath:%Oracle_x64%\PublisherPolicy\2.x\Policy.2.111.Oracle.DataAccess.dll
IF EXIST "%Oracle_x64%\PublisherPolicy\2.x\Policy.2.112.Oracle.DataAccess.dll" "%OraProvCfg_x64%" /action:gac /providerpath:%Oracle_x64%\PublisherPolicy\2.x\Policy.2.112.Oracle.DataAccess.dll
IF EXIST "%Oracle_x64%\PublisherPolicy\2.x\Policy.2.121.Oracle.DataAccess.dll" "%OraProvCfg_x64%" /action:gac /providerpath:%Oracle_x64%\PublisherPolicy\2.x\Policy.2.121.Oracle.DataAccess.dll
IF EXIST "%Oracle_x64%\PublisherPolicy\2.x\Policy.2.122.Oracle.DataAccess.dll" "%OraProvCfg_x64%" /action:gac /providerpath:%Oracle_x64%\PublisherPolicy\2.x\Policy.2.122.Oracle.DataAccess.dll

IF EXIST "%Oracle_x64%\bin\4\Oracle.DataAccess.dll" "%OraProvCfg_x64%" /action:gac /providerpath:%Oracle_x64%\bin\4\Oracle.DataAccess.dll
IF EXIST "%Oracle_x64%\PublisherPolicy\4\Policy.4.112.Oracle.DataAccess.dll" "%OraProvCfg_x64%" /action:gac /providerpath:%Oracle_x64%\PublisherPolicy\4\Policy.4.112.Oracle.DataAccess.dll
IF EXIST "%Oracle_x64%\PublisherPolicy\4\Policy.4.121.Oracle.DataAccess.dll" "%OraProvCfg_x64%" /action:gac /providerpath:%Oracle_x64%\PublisherPolicy\4\Policy.4.121.Oracle.DataAccess.dll
IF EXIST "%Oracle_x64%\PublisherPolicy\4\Policy.4.122.Oracle.DataAccess.dll" "%OraProvCfg_x64%" /action:gac /providerpath:%Oracle_x64%\PublisherPolicy\4\Policy.4.122.Oracle.DataAccess.dll

IF EXIST "%Oracle_x86%\bin\2.x\Oracle.DataAccess.dll" "%OraProvCfg_x86%" /action:gac /providerpath:%Oracle_x86%\bin\2.x\Oracle.DataAccess.dll
IF EXIST "%Oracle_x86%\PublisherPolicy\2.x\Policy.2.102.Oracle.DataAccess.dll" "%OraProvCfg_x86%" /action:gac /providerpath:%Oracle_x86%\PublisherPolicy\2.x\Policy.2.102.Oracle.DataAccess.dll
IF EXIST "%Oracle_x86%\PublisherPolicy\2.x\Policy.2.111.Oracle.DataAccess.dll" "%OraProvCfg_x86%" /action:gac /providerpath:%Oracle_x86%\PublisherPolicy\2.x\Policy.2.111.Oracle.DataAccess.dll
IF EXIST "%Oracle_x86%\PublisherPolicy\2.x\Policy.2.112.Oracle.DataAccess.dll" "%OraProvCfg_x86%" /action:gac /providerpath:%Oracle_x86%\PublisherPolicy\2.x\Policy.2.112.Oracle.DataAccess.dll
IF EXIST "%Oracle_x86%\PublisherPolicy\2.x\Policy.2.121.Oracle.DataAccess.dll" "%OraProvCfg_x86%" /action:gac /providerpath:%Oracle_x86%\PublisherPolicy\2.x\Policy.2.121.Oracle.DataAccess.dll
IF EXIST "%Oracle_x86%\PublisherPolicy\2.x\Policy.2.122.Oracle.DataAccess.dll" "%OraProvCfg_x86%" /action:gac /providerpath:%Oracle_x86%\PublisherPolicy\2.x\Policy.2.122.Oracle.DataAccess.dll

IF EXIST "%Oracle_x86%\bin\4\Oracle.DataAccess.dll" "%OraProvCfg_x86%" /action:gac /providerpath:%Oracle_x86%\bin\4\Oracle.DataAccess.dll
IF EXIST "%Oracle_x86%\PublisherPolicy\4\Policy.4.112.Oracle.DataAccess.dll" "%OraProvCfg_x86%" /action:gac /providerpath:%Oracle_x86%\PublisherPolicy\4\Policy.4.112.Oracle.DataAccess.dll
IF EXIST "%Oracle_x86%\PublisherPolicy\4\Policy.4.121.Oracle.DataAccess.dll" "%OraProvCfg_x86%" /action:gac /providerpath:%Oracle_x86%\PublisherPolicy\4\Policy.4.121.Oracle.DataAccess.dll
IF EXIST "%Oracle_x86%\PublisherPolicy\4\Policy.4.122.Oracle.DataAccess.dll" "%OraProvCfg_x86%" /action:gac /providerpath:%Oracle_x86%\PublisherPolicy\4\Policy.4.122.Oracle.DataAccess.dll

如果愿意,也可以使用OraProvCfg.exe代替gacutil.exe