Получите доступ к informix, используя C # внутри контейнера Docker - PullRequest
2 голосов
/ 22 марта 2019

Я работаю над переносом приложения NET, которое обращается к базе данных Informix, чтобы оно могло работать в контейнере Docker. Я сделал POC, и когда я запускаю его на локальном компьютере, он работает правильно. Но когда я хочу запустить одно и то же приложение внутри контейнера, возникает исключение:

Unhandled Exception: System.DllNotFoundException: Unable to load DLL 'db2app.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
   at IBM.Data.DB2.UnsafeNativeMethods.DB232.SQLFreeConnAttribsADONET(DB2SQLGetConnAttribsADONETParams& pParam)
   at IBM.Data.DB2.ConnSettingsFromXmlConfig.Dispose(Boolean disposing)
   at IBM.Data.DB2.ConnSettingsFromXmlConfig.Dispose()
   at IBM.Data.DB2.DB2ConnPool.ReplaceConnectionStringParms(DB2Connection 
connection, String szValue, DB2ConnSettings& pSettings, 
DB2ConnSettingsInternal& pSettingsInternal, Boolean bAttach, Boolean 
pushDownStrAppended)
at IBM.Data.DB2.DB2Connection.set_ConnectionString(String value)
at IBM.Data.DB2.DB2Connection..ctor(String connectionString)
at ConsoleInformix.Program.Main(String[] args) in 

Контейнер основан на изображении: Microsoft / САШ: 4.7.2-windowsservercore-1803

Основным приложением для миграции является проект веб-API (.NET Framework 4.7.2)

Изучение пакетов NuGet для IBM.DataDB2 предупреждает: «УВЕДОМЛЕНИЕ. Для этого пакета требуется, чтобы клиентское программное обеспечение IBM DB2 было установлено локально и доступно в переменной среды% PATH%»

Но мне не удалось решить, как выполнить автоматическую или автоматическую установку клиента IBM в контейнере. Кто-нибудь может помочь?

...