【问题标题】:How to catch exception for a serverless SQL Server cold boot如何捕获无服务器 SQL Server 冷启动的异常
【发布时间】:2021-10-25 01:32:48
【问题描述】:

托管在 Azure 应用服务中的这个 ASP.NET Core 3.1 Web 应用程序使用 SQL Server 的无服务器版本作为数据库。它通过 Entity Framework Core 与 SQL Server 对话。我怀疑发生此错误是因为数据库需要时间来启动。第二次或第三次请求页面后,它就会消失。

有没有办法在 ASP.NET Core 中捕获此异常,并根据此特定异常向用户返回更有帮助的消息?

错误截图:

【问题讨论】:

  • 底层异常是什么?这个错误是一个通用的包罗万象的错误。
  • 如果您的问题只是为了在 azure 中部署的 web 应用程序中捕获异常消息和详细信息,我认为您可以在 azure porttail->your web app->app insight->choose 中启用 azure applicationInsights启用。
  • 使用重试策略

标签: c# sql-server azure asp.net-core entity-framework-core


【解决方案1】:

您分享的错误来自内置的通用 catch。 ASP.NET 使用UseExceptionHandler 进行异常处理,允许我们配置自定义错误处理路由。请查看here

这在应用程序在生产环境下运行时很有用。当您使用开发环境时,您应该设置环境变量ASPTNETCORE_ENVIRONMENT=Development。为此,请访问How to set ASPNETCORE_ENVIRONMENT to be considered for publishing an ASP.NET Core application

如需了解更多 ASP.NET Core 3.1 中的异常处理,请访问Handle errors in ASP.NET Core

【讨论】:

    猜你喜欢
    • 2011-10-04
    • 1970-01-01
    • 2015-04-19
    • 1970-01-01
    • 1970-01-01
    • 2020-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多