配置更改或交换后,Azure Web应用程序崩溃,并且停机了几个小时

时间:2018-12-24 21:48:05

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

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

有人知道这里可能发生什么或对我们可以尝试的事情有任何想法吗?

2 个答案:

答案 0 :(得分:1)

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

这里是CrashDiag Site Extension,它可以在发生间歇性未处理异常时轻松地帮助我们捕获必要的数据。要捕获转储中的异常,可以参考此article

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

答案 1 :(得分:0)

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