上周日,我们的一个 Azure Web 应用程序莫名其妙地宕机了。过去 5 天没有部署任何代码,该应用程序在付费订阅的 S3 服务级别上运行良好。我能想到的唯一合理解释是底层的一些 VM 被更改/升级,导致我们的应用程序崩溃。
通过 web.config 中的 stdout 配置启用详细的错误消息和日志后,我收到以下错误:
“无法从程序集‘System.Private.CoreLib’加载类型‘System.Diagnostics.InjectedFunctionParent’...”
有趣的是我们在代码中的任何地方都没有使用这样的程序集……
我们尝试了多种解决方案(重新部署、扩大和缩小服务计划等),但唯一有效的方法是从 Azure 中删除整个 Web 应用程序并重新创建它……
有人遇到过类似的问题吗?你是如何解决/预防的?
提前致谢!
答案1
我们也遇到过同样的事情。周日,我们的一个 Azure Web 应用崩溃了,当我启用详细错误消息时,我收到:无法从程序集“mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”加载类型“System.Diagnostics.InjectedFunctionParent”,因为父级不存在。
谷歌没有提出任何建议,那一周我们也没有任何部署。
在我们的案例中,导致网站崩溃的代码行是循环遍历程序集并加载类型列表的代码。我能够通过从循环中排除该程序集并部署新代码来修复该问题。所以我不需要重新创建 Web 应用程序,这是我的下一个想法。
我昨天联系了微软,想看看他们是否有任何想法或者是否对应用服务做出了任何更改,但他们说没有做出任何更改。
所以总而言之,我不太确定它为什么会崩溃。我的直觉是应用服务发生了变化,或者某些应用服务启用了额外的日志记录/诊断功能。(我的其他具有类似代码的应用没有崩溃)
抱歉,我无法提供更多帮助
答案2
我突然遇到了同样的问题,并通过禁用 Application Insights、删除与 Application Insights 相关的所有配置值并重新启用它来解决它。