【问题标题】:Azure web application crashes after config change or swap and stays down for hoursAzure Web 应用程序在配置更改或交换后崩溃并停机数小时
【发布时间】:2018-12-24 21:48:05
【问题描述】:

自从我们将大多数用户转移到作为 Web 应用程序在 Azure 中运行的 asp.net Web 应用程序后,我们遇到了一个间歇性问题,即所有用户的应用程序都会崩溃,仅响应超时或 502/ 503 错误。这通常发生在我们进行了配置更改(例如更改门户中的应用程序设置)或在部署期间交换插槽之后。非常令人沮丧的是,在它最终自行解决之前似乎无法将其取回。在停机期间和停机之前,诊断看起来很好 - 最少的 CPU 和内存使用。很多错误,但它们是大多数超时错误。此问题无法通过横向扩展或纵向扩展来解决,应用程序重新启动无效。即使杀死 w3wp 也不会使应用程序恢复正常。在中断期间获取的 CPU 配置文件显示失败的请求,但仅此而已。

有谁知道这里可能发生了什么或对我们可以尝试什么有任何想法?

【问题讨论】:

  • 现在有任何进程吗?
  • 我已经安装了扩展。只是等待问题在我们的生产环境中再次发生。更多信息...只要在大量使用期间回收应用程序,就会出现此问题。
  • 我们今天发生了严重中断,我能够运行 CrashDiag 站点扩展。我不确定它是否在遇到问题的实例上运行(我们已扩展到 4 个实例),但它确实捕获了一些故障转储。在所有转储中都有相同的错误。我是否更正了这个错误实际上使工作进程崩溃了?因为抛出它的代码实际上是由 try...catch 语句处理的,并不是一个特别不寻常的错误。

标签: asp.net azure web-applications deployment crash


【解决方案1】:

在 Azure Web App 环境中运行客户的 .NET 进程时,它可能会由于代码或性能问题而间歇性崩溃。当此类崩溃/异常自动发生时捕获崩溃转储以供进一步调查非常重要。

这里有一个CrashDiag Site Extension,它可以很容易地帮助我们在发生间歇性未处理异常时捕获必要的数据。要捕获异常转储,您可以参考此article

正如您所说,您只会收到超时或 502/503 的错误消息,这是一个 article,您可以参考它进行故障排除。

【讨论】:

    【解决方案2】:

    这个问题实际上是由我们的 ORM 写入 TraceWriter 引起的。由于部署过程的更改,在生产环境中保留了一个配置标志。 TraceWriter 是线程安全的,因此创建锁和阻塞 CPU 也是如此。繁忙的使用时段会导致对 TraceWriter 的请求开始排队,从而导致应用程序无响应。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-28
      • 1970-01-01
      • 2018-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多