Asp.NET Core 2.1 HostedService-继续在Azure上运行

Mar*_*son 5 azure asp.net-core

我们有一个使用IHostedService的Web应用程序。有这样的例子在这里

我们在这里详细介绍使用的方法

目的是要有一个可以连续运行后台任务的应用程序。因此,我们可以安排在设定的时间自动运行的作业。该应用程序与我们所有其他应用程序是分开的,因此我们的用户群不会访问它。因此,我们需要一种使该应用程序始终在Azure上运行的方法。

我们试图在Azure上为该应用程序设置一个应用程序服务,但该应用程序似乎无法持续运行。事情似乎可以在本地运行,但是在Azure上,我必须停止并重新启动服务,然后才能启动IHostedService任务。

在Azure上是否有一种方法可以使应用程序保持活动和运行状态?

Mar*_*son 5

好的,因此在Azure的“应用程序设置”中,有一项设置Always On对我们有用。:)

我们还从Azure支持中发现,如果您在其提供的软件包中处于最低层,则将其视为“开发”环境,并且正常运行时间将有限。结果,我们可以预期应用程序在达到该限制时将脱机。

我们认为,仪表板中应该有一些更明显的东西让我们知道这一点。

一旦我们升级到标准层,该应用程序将保持在线状态。

另外,如果您正在运行托管服务,但遇到未处理的异常,则会停止该服务。您需要确保要处理异常才能使其正常工作。

  • 那,我们必须升级我们的层。看我的答案。 (2认同)
  • 很高兴您发现了问题。当您在应用程序服务上启用 Application Insights 并查看“故障”部分时,可以识别未处理的异常。那里有大量信息,包括堆栈跟踪等 (2认同)