2015-08-17 2 views
1

Мы использовали 64-разрядный клиент Oracle 11g 64 бит для подключения к базе данных 11g. Недавно мы обновили Oracle 12c. Я удалил 11g odp-клиент на моем локальном компьютере (Windows Server 2008 R2 64 бит). Я убедился, что записи реестра удалены с regedit.exe. После установки Oracle 12c 64 бит я могу успешно установить соединение. Но после фиксации, когда я пытаюсь закрыть соединение с помощью OracleConnection.close() я получаюИсключение нарушения прав доступа с 12c

«AccessViolationException:. Попытка чтения или записи в защищенную память Это часто признак того, что другая память повреждена».

Я использую Visual Studio 2010 Professional как IDE. Пожалуйста, дайте мне знать , как решить эту проблему. Ниже приведен трассировки стека за исключением:

на Oracle.DataAccess.Client.OpsCon.Close (IntPtr & opsConCtx, IntPtr & opsErrCtx, OpoConValCtx * pOpoConValCtx, OpoConRefCtx pOpoConRefCtx)
на Oracle.DataAccess. Client.ConnectionPool.CheckLifeTimeAndStatus (opoConCtx & opoConCtx, булева bDistTxnActive, булева & bClosed, Int32 bFromPool, Логического bCheckLifetimeOnly, булева bFreeValCtxOnDispose, булева isPopulatePool) при Oracle.DataAccess.Client.Con nectionPool.PutConnection (OpoConCtx & opoConCtx, булева bDoNotAllocValCtx, булева bCheckStatus, булева bCheckLifeTime, Int32 bDistTxnActive, булева isPopulatePool, булева bFreeValCtxOnDispose) при Oracle.DataAccess.Client.ConnectionDispenser.Close (OpoConCtx & opoConCtx, булева isContextConnection) в Oracle.DataAccess.Client.OracleConnection.Close()

+0

Пройдите поиск на вашей машине для oci.dll. Он является частью многих других DLL-клиентов Oracle. Если вы обнаружите, что оно удаляет/переименовывает все другие DLL-библиотеки Oracle, которые вы находите в этом месте. Возможно, некоторые старые DLL-клиенты остались в неожиданных местах и ​​загружены и несовместимы, –

ответ

0

Я видел этот вопрос возникает в некоторых сборки клиента ODP.NET, в частности неуправляемой 64-разрядной версии.

Для чего я смог отлаживать, дизассемблировать, диагностировать и т. Д., Это ошибка в сборках клиентов ODP.NET. Я недавно не видел его в нашей оснастке, поэтому, возможно, вы могли бы перейти на последнюю версию, если вы этого не сделали.

+0

Какую версию клиента Oracle вы используете? –

+0

Я использую 'Version = 2.121.2.0' Это будет 12.1.2.0. Обычно я использовал управляемую версию, в которой есть некоторые ошибки. –

0

Кажется, проблема существует с Oracle.DataAccess (4.121.2.0). Мы установили более старую версию 12c, которая дает 4.121.1.0 версию Oracle.DataAccess.dll. Он решил проблему.

Смежные вопросы