.Net Core 2.0 Web API - 服务器因析构函数问题而崩溃

.Net Core 2.0 Web API - Servers crashing because of issue with Destructors

好的,所以我有一个流量非常大的应用程序(每秒大约 17 个请求)。该应用程序是使用 .Net Core 2.0(最近刚刚升级)构建的 REST API。

该应用程序托管在 Azure 上,我们遇到了一个看起来像内存泄漏的问题,因为服务器会非常缓慢地(超过一周)耗尽所有处理程序和资源并最终崩溃。

我与 MS 支持人员谈了很多,他们帮助我缩小了问题范围。这是他们的最后一封电子邮件:

"We are seeing a high amount of large objects (strings and arrays over 85000 bytes) can lead to GC Heap fragmentation and thus higher memory usage in your application. We were investigating how to manage the destructor and I can provide you the following documentation:

I will continue looking for more documentation related with the destructor in .NET Core."

在此之后,他们基本上说 Azure 不应该受到指责,我需要开一张 "code" 支持票,费用约为 500 美元...

所以我要来这里。 :)

虽然我已经成为 .Net 开发人员超过 15 年,但这是我第一次使用 .Net Core。我找到了这篇很棒的文章,并将其用作我的 API (https://chsakell.com/2016/06/23/rest-apis-using-asp-net-core-and-entity-framework-core/) 的 backbone。

当我将它与其他 .Net Core 示例进行比较时,它似乎与那些示例一致,因此我有理由相信我正在遵循 "best practices",但我可能是错的。

我担心 .Net Core 存在根本问题(MS 提到的那些文章有点暗示),但我不确定如何找到答案。我不想因此不得不重写我的代码,但除了偶尔重新启动服务器外,我不确定我的选择是什么。

想法?

好的...为了后代...我最终的解决方案是配置设置问题...Core 的析构函数问题对我来说不是一个因素,因为我们没有发送足够大的字符串触发它。

你可以在这个问题中看到我的方法和最终答案(使用单例):