Я пытался использовать System.Data.OracleClient для соединения с oracle db.Моё основное приложение .net хорошо работает в vs2017 и IIS, но при развертывании в контейнере Linux и запуске части, которая получает соединение из базы данных, я получаю эту ошибку:
System.DllNotFoundException: Невозможно загрузить DLL'oci': указанный модуль не найден.(Исключение из HRESULT: 0x8007007E) в System.Data.OracleClient.Oci.OciCalls.OciNativeCalls.OCIEnvCreate (IntPtr & envhpp, режим OciEnvironmentMode, IntPtr ctxp, IntPtr malocfp * IntP * IntP, RTFRPTP)1006 * Когда я попытался снова запустить прогон детали, возникла ошибка:
System.NullReferenceException: ссылка на объект не установлена для экземпляра объекта в System.Data.OracleClient.OracleConnectionPool.GetConnection () [0x00000] in: 0 в System.Data.OracleClient.OracleConnection.Open () [0x00000] in: 0
Любые предложения будут оценены.
обновление: я удалил Система.Data.OracleClient и используется Oracle.ManagedDataAccess.Core , ошибка исчезла.Важно отметить, что при использовании Oracle.ManagedDataAccess.Core версии 2.18.3 необходимо установить переменную среды с именем TZ для контейнера Dox Linxu, но в версии 2.12.0-бета3 TZ не требуется, для подробностей вы можете увидеть здесь .