应用程序服务状态正在运行但启动失败

问题描述 投票:0回答:1

我正在使用 S1 计划将带有故意失败的启动代码的 ASP.NET Core 8 Web API 应用程序部署到 Windows Azure 应用服务。 https 端点确实返回 500.30 指示启动失败。 但 Azure 门户上应用程序服务的状态是“正在运行”,这令人困惑。
我预计它会处于失败状态,而 Azure Functions 确实会发生这种情况。

我的代码/应用程序服务设置/部署中是否有任何内容可以更改状态以反映启动失败?

我通过 Visual Studio 使用以下发布配置文件进行部署:

配置:发布
目标框架:net8.0
部署模式:依赖框架
目标运行时:便携式

示例复制代码:https://github.com/Aleksey-Kudryavtsev/StartupFailureAspNetCore

azure-web-app-service monitoring
1个回答
0
投票

应用程序服务状态正在运行但启动失败

应用程序服务的状态不是基于代码/抛出的任何异常。

  • 它将基于所使用资源的可用性,而不是异常/启动错误。

  • throw new ApplicationException("Test startup failure");
    文件中删除
    Program.cs
    行。

我的代码/应用程序服务设置/部署中是否有任何内容可以更改状态以反映启动失败?

  • 据我所知,没有这样的方法可以直接更改应用程序的运行状态。

  • 要处理错误,您需要使用

    UseExceptionHandler
    UseStatusCodePages

我可以使用下面的代码来处理异常。

感谢@George提供清晰的步骤。

if (app.Environment.IsDevelopment())
{    
    app.UseDeveloperExceptionPage();
}
else
{
    app.UseExceptionHandler("/Home/Error");
    app.UseHsts();
}
app.UseStatusCodePages("text/plain", "Exception, status code: {0}");

输出: enter image description here

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.