Подтвердить что ты не робот

Служба WCF с полной ошибкой памяти (проверка памяти не удалось из-за свободной памяти) - Как разрешить

У меня есть хост службы WCF. Мой запрос от wc высок. Мой хозяин, после некоторого периода времени, обнаруживает, что проблема памяти полна. Эта проблема повторяется. Когда я открываю страницу справки веб-службы, эта ошибка отображается:

Проверка памяти не удалось, так как свободная память (1398493184 байт) составляет менее 5% от общей памяти. В результате служба будет не доступны для входящих запросов. Чтобы решить эту проблему, уменьшите нагрузки на машину или отрегулировать значение minFreeMemoryPercentageToActivateService на serviceHostingEnvironment.

Мой web.config с хоста WCF выглядит следующим образом:

<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="">
  <serviceMetadata httpGetEnable="true"/>
  <serviceDebug includeExceptionDetailInFaults="false"/>
  <serviceHostingEnvironment minFreeMemoryPercentageToActivateService="1"/>
</behavior>
</serviceBehaviors>

а host web.config -

<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IPaperService" clouseTimeout="00:10:00" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisojnMode="StringWildcard" maxBufferSize="1000000000" maxBufferPoolSize="1000000000" maxReceivedMessageSize="100000000" messageEncoding="text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="1000000000" maxArrayLength="1000000000" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
  <security mode="None">
  <transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
  <message clientCredentialType="UserName" algorthmSuite="Default" />
  <security>
</binding>

Как я могу решить свою проблему?

4b9b3361

Ответ 1

Попробуйте установить minFreeMemoryPercentageToActivateService в 0 в файле yourweb.config для хоста WCF, как предложено в этом ответе

Ответ 2

вместо изменения значения конфигурации WCF, Попытайтесь узнать, какой процесс рабочая память высок, попробуйте увидеть, если это действительно требует

Powershellcommand>> get-process | Sort-Object WS -desc >c:\process.txt 

Также, чтобы узнать, указывает ли processid на пул приложений IIS

cmd.exe>> %systemroot%\system32\inetsrv\AppCmd.exe list wp 

Разрешив ноль в config, это может активировать, может привести к повреждению состояния службы для памяти, недоступной причине - это может быть не так прямолинейно в природе:(

Мои 2 цента...

Ответ 3

Бывают ситуации, когда изменение web.config не является вариантом. В нашем случае мы решили это, увеличив объем памяти сервера с 8 до 16 ГБ.

Ответ 4

Эта проблема возникает, если оперативная память вашей системы занята более чем на 95%, остановите некоторые нежелательные процессы и повторите попытку вызова службы.

Ответ 5

Я использовал монитор ресурсов на своем веб-сервере MS 2008 R2, чтобы определить, что SQL Server потребляет более 29 концертов из моих доступных 32.

Прочитав другие мнения о том, сколько памяти выделяется SQL, я устанавливаю максимальную память на 24 концерта. Максимальное ограничение памяти сервера можно найти на вкладке памяти свойств SQL Server.

Ответ 6

УТИЛИЗИРУЙТЕ СВОЙ БАССЕЙН

  1. Перейти в IIS
  2. Выберите пул приложений
  3. Найдите пул приложений, в котором запущено ваше приложение, и выберите его
  4. Нажмите Recycle на правой панели.

Смотрите IIS здесь