Sni*_*ipe 5 memorystream out-of-memory azure aspose.words
我有以下代码,它使用名为 Aspose.Words 的第三方库:
SaveOptions saveOptions = SaveOptions.CreateSaveOptions(SaveFormat.Docx);
saveOptions.MemoryOptimization = true;
saveOptions.TempFolder = Path.GetTempPath();
var mm = new RecyclableMemoryStreamManager();
using (RecyclableMemoryStream ms = new RecyclableMemoryStream(mm))
{
doc.Save(ms, saveOptions);
return ms.ToArray();
}
Run Code Online (Sandbox Code Playgroud)
我在using语句中遇到以下错误。
Mvc.ExceptionHandling.AbpExceptionFilter - 引发“System.OutOfMemoryException”类型的异常。
我无法在本地重现它(在处理过程中我的内存使用量可能增加了 200mb,因此它实际上并没有使用太多内存)。文件本身大小仅为 56MB。Aspose 告诉我它最多可以使用该数量的 10 倍......即使如此也应该没问题。我已更改服务计划以扩展到 14GB 内存。
我正在使用 RecyclableMemoryStreamManager 因为我已经尝试使用 MemoryStream 但没有成功。
我还能做些什么来解决这个我只在 Azure(开发和生产)中遇到的问题?Azure API是.net核心堆栈,具有64位平台。
提前致谢。
您使用什么 Azure 服务产品?
大多数基于应用服务的产品(包括消耗计划中的 Azure Functions)每个进程/应用的内存上限为 1.5GB,无论你选择哪种应用服务定价计划。消耗计划中的 Azure 函数的最大内存限制为 1.5GB每个函数应用实例 (扩展可以允许多个实例),其他产品也有限制,以防止您吞噬底层计算机的所有内存。(您当地的环境没有这些限制)
如果没有实际的指标,很难解决这个问题。运行您的代码,然后在崩溃后等待几分钟并查看应用程序的指标,尤其是在工作内存和专用字节下。这些可以在应用服务的指标部分找到。
如果这些在你崩溃之前就达到了极限,这可能就是原因。如果是这种情况,您在 Azure 中的选项是
| 归档时间: |
|
| 查看次数: |
18113 次 |
| 最近记录: |