我知道有人问过这个问题,但是没人回答。
我正在使用JWT令牌载体在Core 2.2上构建Web API。在令牌请求中,我添加了检查用户是否存在于我们的LDAP中。
所有内容都可以在IIS和控制台应用程序上正常工作,但是当我与docker一起运行时,我得到了:
"Unable to load DLL 'activeds.dll' or one of its dependencies: The specified module could not be found. (Exception from HRESULT: 0x8007007E)"
错误。
如果用户存在,则一切正常,但当用户不存在时,我通过以下方式检查用户状态:
UserPrincipal oUserPrincipal = UserPrincipal.FindByIdentity(oPrincipalContext,sUserName);
导致上述错误的原因。
我是docker的新手。我尝试过处理图像:
mcr.microsoft.com/dotnet/core/sdk mcr.microsoft.com/dotnet/core/aspnet microsoft / aspnetcore-build
在所有情况下相同的结果
我已经在docker文件中公开了LDAP端口(或者我想我已经公开了),仍然出现相同的错误。
我当前的dockerfile:
FROM mcr.microsoft.com/dotnet/core/sdk AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
EXPOSE 383
EXPOSE 636
FROM mcr.microsoft.com/dotnet/core/sdk AS build
WORKDIR /src
COPY ["USITWebApi/USITWebApi.csproj", "USITWebApi/"]
RUN dotnet restore "USITWebApi/USITWebApi.csproj"
COPY . .
WORKDIR "/src/USITWebApi"
RUN dotnet build "USITWebApi.csproj" -c Release -o /app
FROM build AS publish
RUN dotnet publish "USITWebApi.csproj" -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "USITWebApi.dll"]
我正在使用Windows容器。
我花了三天的时间来解决这个问题。如果您有任何想法,请帮助我解决此问题。