Прошу помощи с контейнеризацией


Прошу помощи с контейнеризацией
Atom
1/9/2021


Здравствуйте!

Написал робота на последней версии S#. Использую Transaq Connector. Пытаюсь завернуть приложение в контейнер Docker. Локально, без контейнера, все работает отлично. Но при попытке соединения в приложении в контейнере выдает ошибку. Приходит exception на событие Connector.ConnectionError:

Code
Error load library txmlconnector.dll. (Parameter 'dllPath')


Code
at Ecng.Interop.Marshaler.LoadLibrary(String dllPath)
at Ecng.Interop.DllLibrary..ctor(String dllPath)
at #=z$v7B9Iu3PqOtBWiwGjTeuTIBQG7A..ctor(String #=zWUnOCRY=, #=zGon05jN$zqu0 #=z$SosFX8=)
at #=zfFAR89tKbzSwRbMRwZT08jN8htD7UjYzvw==..ctor(Action`1 #=z$SosFX8=, Action`1 #=zuVX1g4Bj32l1, String #=zWUnOCRY=, Boolean #=z1BrZqexflzIZ, Boolean #=zpNZ3xedpXleK, String #=zEYFvlw2lUDMt, ApiLogLevels #=z9eSLFMNKlQa7)
at StockSharp.Transaq.TransaqMessageAdapter.#=zAxO2KDE=()
at StockSharp.Transaq.TransaqMessageAdapter.OnSendInMessage(Message message)
at StockSharp.Messages.MessageAdapter.SendInMessage(Message message)


Dockerfile стандартный:



Пробовал запускать на разных runtime (nano, core), не помогает. Код, собранный в конейнере (и выдернутый из него), запускается на локальной машине отлично. Т.е. проблема именно в среде выполнения и методе загрузки txmlconnector.dll. Исходников Ecng.Interop, чтобы подсмотреть, у меня нет и я не знаю куда копать. Помогите!



Thanks:


Павел

Avatar
Date: 1/9/2021
Reply


Автора первого полезного ответа ждет вознаграждение.
Thanks:

Sprite

Avatar
Date: 1/9/2021
Reply


Такая же ошибка возникает если завернуть приложение в UWP
Попробуйте жестко задать путь к txmlconnector.dll
https://doc.stocksharp.r...sageAdapter_DllPath.htm
Thanks: Павел

Павел

Avatar
Date: 1/9/2021
Reply


sprite Go to
Такая же ошибка возникает если завернуть приложение в UWP
Попробуйте жестко задать путь к txmlconnector.dll
https://doc.stocksharp.r...sageAdapter_DllPath.htm


Спасибо за наводку!

Но не помогло. Попробовал принудительно задать абсолютный и относительные пути, разные варианты с косыми и прямыми чертами, пробовал заранее копировать dll в контейнер. Не помогло :(.
Thanks:

Sprite

Avatar
Date: 1/9/2021
Reply


Еще может надо копать в сторону Docker + C++ MSVC, так как есть подозрение что transaqxml.dll это использует.
https://devblogs.microso...er-for-your-c-projects/
Но я не знаю и сам не пробовал.
Thanks: Павел

Павел

Avatar
Date: 1/11/2021
Reply


Кстати, я даже попробовал установить все версии vcredist в контейнер, не помогло.
Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy