【发布时间】:2022-01-16 00:05:48
【问题描述】:
从旧版 Program/Startup 迁移 ASP.NET Core 6 应用以使用 new minimal hosting model 后,我收到了一组无法描述的错误。
错误信息
我已明确启用 UseDeveloperExceptionPage() 以确保安全,但我在浏览器中收到的只是通用的:
HTTP 错误 500.30 - ASP.NET Core 应用无法启动
在事件查看器中,事件 1011 被记录:
物理根目录为“C:\Code”的应用程序“/LM/W3SVC/2/ROOT”已从 Program.Main 退出,退出代码为“0”。请查看 stderr 日志以获取更多信息。
随后是事件 1007:
物理根目录为“C:\Code”的应用程序“/LM/W3SVC/2/ROOT”无法加载 coreclr。
异常消息: CLR 工作线程提前退出
运行 IIS Express 或 Kestrel 时,调试控制台中没有更多信息可用。但是,我可以看到来自我的 Program 的其他启动进程正在被记录,因此知道它们正在正确加载。
代码
这是我的Program 文件的简化版本,删除了自定义组件:
using Microsoft.AspNetCore.Mvc.Controllers;
using Microsoft.AspNetCore.Mvc.ViewComponents;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();
var app = builder.Build();
// Should be implicit in Debug mode, but explicitly including to be safe
app.UseDeveloperExceptionPage();
app.UseStaticFiles();
app.UseRouting();
app.MapControllers();
以前的话题
由于这些是真正一般性错误,因此之前有很多与此问题相关的可用线程,但似乎没有一个适用于这种情况。 (很多都与ASP.NET Core Hosting Bundle 有关,我没有使用。)
问题
此问题是否存在常见原因?或者,是否有其他方法可以调试此场景?
【问题讨论】:
-
FWIW:这似乎是一个“错字”问题。它是。但这是我让来自两个不同客户的两个开发人员联系我的公司的一个问题,所以我决定发布一个问答,因为如果您不熟悉托管模型,错误消息不会立即明显。由于
Program在历史上是大多数人忽略的样板代码,因此在执行迁移时显然很容易错过。
标签: asp.net-core asp.net-core-6.0 asp.net-core-minimal-hosting-model