Я пытаюсь подключиться к серверу DB2 (предварительно) из контейнера Docker на базе Windows.В настоящее время он использует пакет nuget IMB.Data.DB2.Core (последний).Файл Docker - это просто автоматически сгенерированный файл, который Visual Studio 2019 создает без изменений.
Проект настроен на 64-разрядную версию, и при сборке нет ошибок или предупреждений.
Iвезде искали, как это сделать, и не смогли найти эту проблему где-либо еще.Я подозреваю, что проблема связана с тем, что у меня недостаточно знаний о Docker, а DB2 нуждается в какой-то особой настройке внутри контейнера.Я проверил, что файлы копируются (по крайней мере локально) при сборке, поэтому они должны быть там.
Dockerfile:
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-nanoserver-1809 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/core/sdk:2.2-nanoserver-1809 AS build
WORKDIR /src
COPY ["DockerDb2Test.csproj", ""]
RUN dotnet restore "DockerDb2Test.csproj"
COPY . .
WORKDIR "/src/"
RUN dotnet build "DockerDb2Test.csproj" -c Release -o /app
FROM build AS publish
RUN dotnet publish "DockerDb2Test.csproj" -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "DockerDb2Test.dll"]
Есть контроллер значений по умолчанию, который всегда работает при вызовеПри любом коде, который пытается получить доступ к DB2, возвращается следующий метод исключения:
Невозможно загрузить DLL 'db2app64.dll' или одну из ее зависимостей: Указанный модуль не найден.(Исключение из HRESULT: 0x8007007E
)