web-dev-qa-db-fra.com

Une erreur étrange s'est produite lors de l'utilisation de wcf pour exécuter une requête sur le serveur SQL

Je suis en train de construire une application asp.net, en utilisant II6 sur Windows Server 2003 (hébergement vps). Je suis confronté à une erreur que je n'ai pas reçue sur ma machine de développement (windows 7, iis 7.5, 64 bit).

Lorsque mon service wcf essaie de lancer ma requête en cours d'exécution sur un serveur SQL local, voici l'erreur que je reçois:

La vérification des portes de mémoire a échoué car la mémoire libre (43732992 octets) représente moins de 5% de la mémoire totale. Par conséquent, le service ne sera pas disponible pour les demandes entrantes. Pour résoudre ce problème, réduisez la charge sur la machine ou ajustez la valeur de minFreeMemoryPercentageToActivateService sur l'élément de configuration serviceHostingEnvironment.

et des idées ??

45
vondip

Une chose que vous pourriez essayer est de changer votre chemin de service "mex" en absolu s'il ne l'est pas déjà. Cela a fonctionné pour moi une fois. Mais cela pourrait être dû au redémarrage du service et à la libération de mémoire.

La réponse de BrainSlug a un exemple de la façon de procéder

14
Daniel Dyson

Dans votre web.config, dans votre élément configuration\system.serviceModel\serviceHostingEnvironment, ajoutez un attribut minFreeMemoryPercentageToActivateService et définissez-le sur une valeur inférieure à 5, j'ai défini le mien sur 0, et cette erreur est disparue pour moi.

ex:

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

Attention via MSDN : "La spécification de cet attribut avec une confiance partielle dans le fichier web.config d'un service WCF entraînera une SecurityException lorsque le service sera exécuté. "

135
BrainSlugs83

J'ai rencontré ce problème lorsque j'exécutais mon service WCF localement (localhost). J'ai arrêté le service. Fermé quelques applications pour nettoyer mon bélier. et je l'ai redémarré à nouveau. Cela a commencé normalement comme précédemment.
La réponse de BrainSlug a également fonctionné. +1 pour cela. :)
À votre santé!!

1
Manish Gupta