Service WCF avec erreur de mémoire complète (vérification des portes de mémoire a échoué parce que la mémoire libre) - comment résoudre

J'ai un hôte de service WCF. Ma demande de wc est élevée. Mon hôte, après une période de temps présente un problème de mémoire est pleine. Ce problème se répète. Lorsque j'ouvre la page D'aide du service Web, cette erreur s'affiche:

La vérification des portes de mémoire a échoué car la mémoire libre (1398493184 octets) est inférieure à 5% de la mémoire totale. En conséquence, le service ne pas être disponible pour les demandes entrantes. Pour résoudre ce problème, réduire la charge sur la machine ou régler la valeur de minFreeMemoryPercentageToActivateservice sur le élément de configuration serviceHostingEnvironment.

Ma toile.la configuration de L'hôte WCF est la suivante:

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

Et le web hôte.config est

<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>

Comment puis-je résoudre mon problème?

21
demandé sur Jafin 2013-04-20 15:00:36

5 réponses

Essayez de définir minFreeMemoryPercentageToActivateservice sur 0 dans yourweb.config pour L'hôte WCF, comme suggéré dans cette réponse

36
répondu Andrea Scarcella 2017-05-23 12:25:58

Au lieu de changer la valeur de configuration WCF, Essayez de savoir quel processus workingset memory high, essayez de voir que si cela nécessite vraiment

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

Aussi pour savoir si quel processid pointe vers IIS app pool

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

En permettant zéro dans config, cela pourrait être en mesure d'activer peut corrompre l'état de service pour la mémoire non disponible raison - qui pourrait être pas si simple dans la nature: (

Mes 2 cents...

16
répondu HydPhani 2014-07-25 20:12:40

Il y a des situations lors de la modification du web.config n'est pas une option. Dans notre cas, nous avons résolu cela en augmentant la mémoire du serveur de 8 Go à 16 Go.

3
répondu mealexro 2014-06-12 10:12:02

Ce problème se produit si la RAM de votre système est occupée à plus de 95%, arrêtez certains processus indésirables et essayez à nouveau d'invoquer le service.

2
répondu Satya 2017-03-13 07:00:22

J'ai utilisé le moniteur de ressources sur mon serveur web MS 2008 R2 pour déterminer que SQL Server consommait plus de 29 Go sur mes 32 disponibles.

Après avoir lu d'autres opinions sur la quantité de mémoire à allouer à SQL, j'ai mis la mémoire maximale à 24 concerts. La limite de mémoire maximale du serveur se trouve dans l'onglet mémoire de vos propriétés SQL Server.

1
répondu MarcB 2015-02-03 22:24:18