Ядро EF добавляет сущности в случайном порядке в Docker, нет проблем при отладке в IIS - PullRequest
0 голосов
/ 25 апреля 2020

Не понимаю, почему ядро ​​EF показывает случайность при добавлении сущности в базу данных. код ранее выполнялся на ядре 2.2 и сталкивался с проблемой после переноса ядра 3.3 Библиотека классов DBcontext (AMLQuery) находится в netstandard2.0. Я пытаюсь вставить объект из WebApi, имеющий netcoreapp3.1. Проблема возникает только при развертывании приложения в docker. Иногда он может вставить данные, но в большинстве случаев не удается (с тем же набором данных). в основном сталкивается с проблемой, когда размер данных для вставки больше. при попытке вставить сущность, просто не получая никаких исключений, и система зависает! В Localhost он ведет себя как и ожидалось с тем же набором данных! Я попытался решить эту проблему с помощью решения ниже, но это не сработало. https://github.com/dotnet/SqlClient/issues/222

Пожалуйста, найдите нижеприведенный код, где я пытаюсь добавить сущность и файл docker! ---------------------- Docker Файл ------------------------ ----------------------

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app/Finomial.AMLIntegration.WebApi
RUN sed -i 's/DEFAULT@SECLEVEL=2/DEFAULT@SECLEVEL=1/g' /etc/ssl/openssl.cnf
#RUN sed -i 's/MinProtocol = TLSv1.2/MinProtocol = TLSv1/g' /etc/ssl/openssl.cnf
RUN sed -i 's/DEFAULT@SECLEVEL=2/DEFAULT@SECLEVEL=1/g' /usr/lib/ssl/openssl.cnf
#RUN sed -i 's/MinProtocol = TLSv1.2/MinProtocol = TLSv1/g' /usr/lib/ssl/openssl.cnf
EXPOSE 80

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ./ ./
RUN dotnet restore "Finomial.AMLIntegration/Finomial.AMLIntegration.WebApi/Finomial.AMLIntegration.WebApi.csproj"
COPY . .

RUN dotnet build "Finomial.AMLIntegration/Finomial.AMLIntegration.WebApi/Finomial.AMLIntegration.WebApi.csproj" -c Release -o /src/out
FROM build AS publish
RUN dotnet publish "Finomial.AMLIntegration/Finomial.AMLIntegration.WebApi/Finomial.AMLIntegration.WebApi.csproj" -c Release -o /src/out
FROM base AS final
WORKDIR /src
COPY --from=build /src/out .
ENTRYPOINT ["dotnet", "Finomial.AMLIntegration.WebApi.dll"]

------------------ Добавление Сущности в БД ----------------------------------

 private async Task CreateAMLQuery(AMLQueryModel amlQueryModel)
        {

            try
            {

                _logger.LogInformation("inserting AMLQuery to Database ");
                var amlQuery = _mapper.Map<AMLQuery>(amlQueryModel);
                await   _context.AMLQueries.AddAsync(amlQuery);
                await _context.SaveChangesAsync();
                _logger.LogInformation("insertion  AMLQuery to Database completed");
                return;
            }
            catch (Exception e)
            {
                _logger.LogError("Error Details : {@Message}", e.Message);
             throw e;
            }

        }
...