2010-05-21 4 views
43

Je construis 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).Erreur étrange survenant lors de l'utilisation de wcf pour exécuter une requête sur le serveur SQL

Quand mon service WCF tente de lancer ma requête en cours d'exécution sur un serveur SQL local c'est l'erreur que je reçois:

portes de contrôle de la mémoire a échoué car la mémoire libre (43732992 octets) est inférieure à 5% de la mémoire totale. En tant que résultat , le service ne sera pas disponible pour les demandes entrantes. Pour résoudre ce problème, réduisez la charge sur la machine ou réglez la valeur de minFreeMemoryPercentageToActivateService sur l'élément de configuration serviceHostingEnvironment .

et des idées?

Répondre

13

Une chose que vous pourriez essayer est de changer votre chemin de service «mex» en absolu si ce n'est déjà fait. Cela a fonctionné pour moi une fois. Mais cela pourrait être dû au redémarrage du service et à la libération de la mémoire.

Réponse de BrainSlug a un exemple de la façon de le faire

119

Dans votre web.config, dans votre configuration \ system.serviceModel \ élément serviceHostingEnvironment, ajoutez un attribut minFreeMemoryPercentageToActivateService, et le mettre à quelque chose inférieur à 5, je mettre le mien à 0, et cette erreur est partie pour moi.

ex:

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

Attention via MSDN: "Spécifier cet attribut avec confiance partielle dans le fichier web.config d'un service WCF entraînera une SecurityException lorsque le service est exécuté."

+3

@ BrianSlugs83 Merci - cela a également fonctionné pour moi dans un environnement d'hébergement partagé. –

+4

Est-il prudent de réduire cela à 0%, comme recommandé dans cette réponse? Y at-il une bonne raison pour laquelle la valeur par défaut est de 5%? – Matt

+0

C'est une bonne question, et je ne peux pas dire que je connais la réponse - mais je m'aventurerais, tant que vous n'êtes pas dans un environnement de confiance partielle, je ne vois pas pourquoi ce ne serait pas - - D'un côté, cela fonctionne autour d'un bug bizarre - et d'un autre côté, si votre serveur a 0% de mémoire libre, vous avez déjà beaucoup d'autres problèmes bien plus graves. : -/ – BrainSlugs83

1

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 redémarré à nouveau. Cela a commencé normalement comme avant.
La réponse de BrainSlug a également fonctionné. +1 pour ça. :)
A bientôt !!

Questions connexes