启动前处理异常

Handling exceptions before startup

我有一个应用程序可以在 主机创建之前 启动过程中抛出 InvalidOperationException。我想做的是捕获此错误,并通过显示静态的自定义错误页面来处理它( ErrorPage.html

这可能吗?我所看到的每一个地方都让人觉得这似乎是一项不可能完成的任务,默认 500.30 - ASP.NET Core app failed to start 是唯一出现在抛出异常时主机无法建立的情况下的页面。

在生成 500 个响应的主机错误上实现自定义错误页面的一个选项是在您的应用程序前面使用一些网关或代理。这个想法是通过显示来自网关的一些错误内容来处理某些响应。

选项将包括 custom error pages in Azure Application Gateway or a middleware handler if using a YARP 代理实例。

对于 IIS,使用 web.config 并在元素 <system.webServer>

中添加一个部分
<httpErrors errorMode="Custom" existingResponse="Replace">
    <error statusCode="500" subStatusCode="30" path="ErrorPage.html" responseMode="File" />
</httpErrors>

Check docs for more information