【发布时间】:2018-02-15 13:29:12
【问题描述】:
我有一个面向 Linux 的 ASP.NET Core 2.0 Docker 映像。这在我的 Windows 开发机器上运行良好。当我在 Linux 上将此 iamge 作为 docker 容器运行时,它会在向正在运行的容器发出请求时崩溃。不添加日志条目,也不产生异常。使用 Docker CLI 我可以看到容器以退出代码 132 停止,这似乎是“SIGILL”、“非法指令”。
在下面的测试文件中,添加时出现错误
asp-for="LoginCode"
在输入元素上。如果我不考虑这个,一切都会运行良好。
Test.cshtml:
@model LoginViewModel
Test page running.
@{
ViewData["Title"] = "Login";
}
<h1>@ViewData["Message"]</h1>
@try
{
using (Html.BeginForm())
{
<input type="text" class="form-control" placeholder="Logincode" asp-for="LoginCode" />
}
}
catch (Exception exc)
{
exc.ToString();
}
public class LoginViewModel
{
[Required]
public string LoginCode { get; set; }
[Required]
public string Paswoord { get; set; }
}
public class HomeController : Controller
{
public IActionResult Test()
{
return View("Test");
}
}
Dockerfile:
FROM microsoft/aspnetcore:2.0 AS base
WORKDIR /app
EXPOSE 80
FROM microsoft/aspnetcore-build:2.0 AS build
WORKDIR /src
COPY *.sln ./
COPY MyProjectName/MyProjectName.csproj MyProjectName/
RUN dotnet restore
COPY . .
WORKDIR /src/MyProjectName
RUN dotnet build -c Release -o /app
FROM build AS publish
RUN dotnet publish -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "MyProjectName.dll"]
这是 Docker、ASP.NET Core 中的错误,还是我的错误?我是否可以通过任何方式解决此问题或找出错误发生的确切位置?我有类似的 ASP.NET Core 应用程序在同一台 Linux 机器上运行而没有问题,它们确实使用 asp-for 标记吗?
【问题讨论】:
标签: c# asp.net linux docker asp.net-core-2.0