应用程序在 Docker 中的纳米服务器上运行 Kestrel 时未返回任何错误消息(缺少 dll?)

应用程序在 Docker 中的纳米服务器上运行 Kestrel 时未返回任何错误消息(缺少 dll?)

我正在尝试在 Docker 上运行针对 net461 的 Kestrel 应用程序,但失败且没有任何错误消息。它在 Windows 10 上运行正常。

我的Dockerfile是:

FROM microsoft/nanoserver
SHELL ["powershell"]
RUN new-item c:\MyAPI -itemtype directory
COPY .\\bin\\Debug\\net461\\win7-x64\\publish MyAPI  
EXPOSE 5000
# ENTRYPOINT ["C:\\MyAPI", "MyAPI.exe"]

发布后我创建了图像:

docker build -t myapi .

并运行它:

docker run -it --entrypoint powershell myapi

然后,当我在容器内手动启动应用程序时,它会停止并且没有任何错误:

> cd MyAPI
> .\MyAPI.exe
> $lastExitCode
-1073741515

该错误代码(0xC0000135 或 STATUS_DLL_NOT_FOUND)似乎表示缺少一个 DLL——但如果没有错误消息,我该如何在纳米服务器上找出它是什么?

的输出[System.Environment]::OSVersionWin32NT 10.0.14393.0

该项目的依赖项包括:

"dependencies": {
    "Microsoft.AspNetCore.Diagnostics": "1.0.0",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
    "Microsoft.Extensions.Logging.Console": "1.0.0",
    "Microsoft.Extensions.Configuration.Json": "1.1.0",
    "Microsoft.Extensions.Configuration.FileExtensions": "1.1.0",
    "Microsoft.AspNetCore.Cors": "1.1.0",
    "Microsoft.AspNetCore.Mvc": "1.1.1",
    "Microsoft.AspNetCore.Mvc.Core": "1.1.1",
    "Microsoft.AspNetCore.Owin": "1.1.0",
    "Microsoft.IdentityModel.Tokens": "5.1.2",
    "Microsoft.AspNetCore.Authentication.JwtBearer": "1.1.0",
    "Microsoft.AspNet.SignalR": "2.2.1",
    "Akka": "1.1.3",
    "Akka.Remote": "1.1.3"
},

"frameworks": {
    "net461": {
    }
}, 

答案1

Nano 服务器不支持完整的 .NET 框架,您只能运行网络标准应用程序,因此这不起作用。

相关内容