Docker:“ System.Data.SqlClient.SNILoadHandle”的类型初始值设定项引发了异常,找不到dll

时间:2018-07-04 19:32:35

标签: asp.net docker dll asp.net-core .net-core

预期的行为 联系运行在容器内的dotnet核心API,可以调用数据库

实际行为 “ System.Data.SqlClient.SNILoadHandle”的类型初始值设定项引发异常,无法加载共享库“ sni.dll”

信息 我在Linux容器中运行.net核心API。该api是正确构建的,这意味着当我通过powershell dotnet命令运行它时,它已正确托管在Kestrel中,并且我能够使用其所有功能(包括联系数据库)来调用它。 相反,在容器内部,结果不正确,我感觉dll的位置有问题。我的dockerfile看起来像这样:

FROM microsoft/aspnetcore-build:2.0 AS build-env
WORKDIR /app

COPY PublishOutput/. ./

FROM microsoft/aspnetcore-nightly:2.1.0-preview2-alpine
WORKDIR /app
COPY --from=build-env /app .

ENTRYPOINT ["dotnet", "Api.Web.dll"]

我使用的是 microsoft / aspnetcore-nightly:2.1.0-preview2-alpine ,因为我遇到了libuv.dll丢失的类似问题(并在此处找到了解决问题的答案{ {3}}),但现在对我来说有点可疑。在 PublishOutput 中,有Visual Studio发布的所有dll。在这些dll中,有 libuv.dll ,还有现在抱怨的sni.dll。我想念什么? dockerfile是否偶然出错?

0 个答案:

没有答案