Azure中的System.OutOfMemoryException,但不是本地异常

Azure中的System.OutOfMemoryException,但不是本地异常,azure,out-of-memory,memorystream,aspose.words,Azure,Out Of Memory,Memorystream,Aspose.words,我有以下使用第三方库Aspose.Words的代码: SaveOptions saveOptions = SaveOptions.CreateSaveOptions(SaveFormat.Docx); saveOptions.MemoryOptimization = true; saveOptions.TempFolder = Path.GetTempPath(); var mm = new RecyclableMemoryStreamManager(); using (RecyclableMe

我有以下使用第三方库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();
}
我在using语句中遇到了以下错误

Mvc.ExceptionHandling.ABPEExceptionFilter-引发了“System.OutOfMemoryException”类型的异常

我无法在本地复制它。在处理过程中,我的内存使用量增加了大约200mb,所以它实际上没有占用太多内存。文件本身的大小只有56MB。Aspose告诉我,它最多可以使用这个数量的10倍。。。即使如此,它也应该是好的。我改变了服务计划,将内存扩展到14GB

我正在使用RecyclableMemoryStreamManager,因为我已经用MemoryStream尝试过了,但没有用

我还可以做些什么来解决这个我只在Azure开发和生产中遇到的问题? Azure API是.net核心堆栈,具有64位平台


提前感谢。

扩大Azure服务的应用程序服务计划。应用程序服务计划中的内存可能非常少。另外,请检查应用服务计划中是否有多个服务正在运行,然后向外扩展


一定要放大或缩小

扩大Azure服务的应用程序服务计划。应用程序服务计划中的内存可能非常少。另外,请检查应用服务计划中是否有多个服务正在运行,然后向外扩展


一定要放大或缩小

您正在使用什么Azure服务

大多数基于应用程序服务的产品,包括消费计划中的Azure功能,每个进程/应用程序的最大内存为1.5GB,而不管您选择的应用程序服务定价计划如何。消费计划中的Azure功能具有每功能应用程序实例扩展功能,可以允许多个实例,其他产品还必须防止您占用底层机器的所有内存。您的本地环境没有这些限制

如果没有实际的指标,很难解决这个问题。运行您的代码,然后在崩溃后几分钟查看应用程序的指标,特别是在工作内存和专用字节下。这些可在应用程序服务的度量部分找到

如果这些在你崩溃之前达到了极限,这可能就是原因。如果是这种情况,您在Azure中的选项是

减少内存占用 优化当前工作,使其使用更少的内存 或者将工作拆分为多个作业,每个作业使用更少的内存并使用Azure函数或类似函数 使用一个应用程序服务环境—大量内存、独立网络,但不便宜 使用虚拟机Azure got几乎可以满足任何大小的需求
您正在使用哪种Azure服务

大多数基于应用程序服务的产品,包括消费计划中的Azure功能,每个进程/应用程序的最大内存为1.5GB,而不管您选择的应用程序服务定价计划如何。消费计划中的Azure功能具有每功能应用程序实例扩展功能,可以允许多个实例,其他产品还必须防止您占用底层机器的所有内存。您的本地环境没有这些限制

如果没有实际的指标,很难解决这个问题。运行您的代码,然后在崩溃后几分钟查看应用程序的指标,特别是在工作内存和专用字节下。这些可在应用程序服务的度量部分找到

如果这些在你崩溃之前达到了极限,这可能就是原因。如果是这种情况,您在Azure中的选项是

减少内存占用 优化当前工作,使其使用更少的内存 或者将工作拆分为多个作业,每个作业使用更少的内存并使用Azure函数或类似函数 使用一个应用程序服务环境—大量内存、独立网络,但不便宜 使用虚拟机Azure got几乎可以满足任何大小的需求
我只是简单地重新启动了我的应用程序服务,然后它开始正常工作。

我只是简单地重新启动了我的应用程序服务,然后它开始正常工作。

我尝试过扩大规模-我现在尝试扩大规模。谢谢如果我的测试只有一个实例在运行,那么我需要扩展吗?如果有多个服务正在运行,那么您需要扩展。检查应用程序服务计划的CPU百分比和内存百分比,并检查您是部署32位可执行文件还是64位可执行文件。如果它是32位,它不能使用超过2GB的内存,即使你有更多的内存,我已经尝试过放大-我现在就尝试缩小。谢谢如果我的测试只有一个实例在运行,那么我需要扩展吗?如果有多个服务正在运行,那么您需要扩展。检查应用程序服务计划的CPU百分比和内存百分比,并检查您是部署32位可执行文件还是64位可执行文件。如果它是32位,它不能使用超过2 GB的内存,即使你有更多的内存。谢谢你的反馈-我将解耦应用程序使用Azure功能。我希望有一种方法可以通过删除AzureStorageFile之类的方式来计划删除。顺便说一句,我已经用限制更新了答案。1.5GB显然只适用于
azure在消费计划中起作用。但是其他的几点都是有效的。谢谢你的反馈-我将解耦应用程序并使用Azure功能。我希望有一种方法可以通过删除AzureStorageFile之类的方式来计划删除。顺便说一句,我已经用限制更新了答案。1.5GB显然仅用于消费计划中的azure功能。但其他观点是正确的。