34

最终如何解决这个错误?


“/****StatWCF_OData”应用程序中的服务器错误。

Memory gates checking failed because the free memory (373817344 bytes) is less than 5% of total memory.  As a result, the service will not be available for incoming requests.  To resolve this, either reduce the load on the machine or adjust the value of minFreeMemoryPercentageToActivateService on the serviceHostingEnvironment config element.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.InsufficientMemoryException: Memory gates checking failed because the free memory (373817344 bytes) is less than 5% of total memory.  As a result, the service will not be available for incoming requests.  To resolve this, either reduce the load on the machine or adjust the value of minFreeMemoryPercentageToActivateService on the serviceHostingEnvironment config element.

源错误:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

堆栈跟踪:

[InsufficientMemoryException: Memory gates checking failed because the free memory (373817344 bytes) is less than 5% of total memory.  As a result, the service will not be available for incoming requests.  To resolve this, either reduce the load on the machine or adjust the value of minFreeMemoryPercentageToActivateService on the serviceHostingEnvironment config element.]
   System.ServiceModel.Activation.ServiceMemoryGates.Check(Int32 minFreeMemoryPercentage, Boolean throwOnLowMemory, UInt64& availableMemoryBytes) +121924
   System.ServiceModel.HostingManager.CheckMemoryCloseIdleServices(EventTraceActivity eventTraceActivity) +86
   System.ServiceModel.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath, EventTraceActivity eventTraceActivity) +883

[ServiceActivationException: The service '/****StatWCF_OData/OData.svc' cannot be activated due to an exception during compilation.  The exception message is: Memory gates checking failed because the free memory (373817344 bytes) is less than 5% of total memory.  As a result, the service will not be available for incoming requests.  To resolve this, either reduce the load on the machine or adjust the value of minFreeMemoryPercentageToActivateService on the serviceHostingEnvironment config element..]
   System.Runtime.AsyncResult.End(IAsyncResult result) +650220
   System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result) +210733
   System.Web.CallHandlerExecutionStep.OnAsyncHandlerCompletion(IAsyncResult ar) +282

版本信息:Microsoft .NET Framework 版本:4.0.30319;ASP.NET 版本:4.0.30319.17929

4

8 回答 8

105

解决方案写在您的帖子中。

要解决此问题,请减少机器上的负载或调整 serviceHostingEnvironment 配置元素上的 minFreeMemoryPercentageToActivateService 的值。

最简单的方法只需将其添加到您的 web.config

<system.serviceModel> 
    <serviceHostingEnvironment minFreeMemoryPercentageToActivateService="0" />
</system.serviceModel> 

阅读更多关于serviceHostingEnvironment 这里

无论如何,@Mr Grok 如何正确指出这表明您的机器没有足够的物理内存,您应该弄清楚为什么会发生这种情况。这可能是一个严重的问题。

于 2013-07-03T13:51:47.940 回答
6

我有这个问题。结果是 SQL 服务器使用了我可用的 32 GB 中的超过 29 GB。

如果您有 SQL Server,请检查您的 SQL Server。MS SQL Sever 旨在占用您允许的尽可能多的可用空间。您可以在 SQL Server 的属性选项卡中的最大服务器内存框中对此进行限制。

于 2015-02-03T22:16:54.287 回答
1

我在 web.config 中将 serviceHostingEnvironment 属性添加到 0。

<system.serviceModel> 
    <serviceHostingEnvironment minFreeMemoryPercentageToActivateService="0" />
</system.serviceModel>

这是我发现的最简单的方法。

于 2017-10-17T10:10:09.133 回答
1

那么我有同样的问题,我正在寻找解决方案。大多数博客都建议使用相同的解决方案在 web.config 中添加“serviceHostingEnvironment”属性,这是一项有风险的工作,因为添加属性会影响整个 IIS 及其托管解决方案,并最终会重新启动 IIS。

由于错误消息与“内存存储问题”有关,我们被要求减少服务器上的负载,所以我所做的只是通过服务管理器重新启动 SQL Server (MSSQLSERVER) 服务,一切恢复正常,我摆脱了内存问题。

Window + R > services.msc > 在突出显示的服务下方重新启动

在此处输入图像描述

于 2019-01-08T11:50:47.333 回答
0

将此添加到您的 machine.configsystem.serviceModel部分下,这将为所有站点设置它:

<serviceHostingEnvironment minFreeMemoryPercentageToActivateService="0" />

您需要管理员权限才能编辑此文件。

有关如何查找 machine.config 的信息,请参阅此答案。

在添加此设置之前,您可以检查是否有任何进程使用了​​过多的内存。但是对我来说,默认设置弊大于利,因为有很多“备用”内存正在使用,系统可以在需要时弹出,所以系统并没有真正的内存不足。

于 2021-11-22T03:25:53.180 回答
0

我尝试在 web.config 文件中设置 minFreeMemoryPercentageToActivateService="0" ,但这在我的情况下仍然没有解决。我正在使用 VMWare,它的执行速度非常慢,因为我有太多快照!我删除了旧的,清理了一些磁盘空间并重新启动了服务器,这样做解决了所有错误。

我是 VMWare 和 SharePoint 的新手,我想我可以在这里分享我的经验!

于 2019-10-08T20:03:31.687 回答
0

web.config 对我有用,但 SQL Server 内存也是一个需要解决的问题。

我能够解决 sql server 内存问题,而无需重新启动 MSSQL server 进程,只需将服务器属性 memory Maximum server memory 降低到较低的值。默认为有效无限制。

无需重新启动 MS SQL 服务,进程就会自动开始将内存占用减少到配置的值。
服务器属性的屏幕截图

于 2019-05-30T16:50:08.617 回答
-1

您需要使用 IISReset 命令行实用程序重新启动 IIS 从“开始”菜单中,单击“运行”。

在打开框中,键入 cmd,然后单击确定。

在命令提示符下,键入:iisreset /noforce

IIS 尝试在重新启动之前停止所有服务。IISReset 命令行实用程序最多等待一分钟以停止所有服务。

于 2019-04-09T14:42:35.663 回答