2010-05-21 21 views
43

Estoy creando una aplicación asp.net, utilizando II6 en el servidor de Windows 2003 (servidor vps). Me enfrento a un error que no recibí en mi máquina de desarrollo (Windows 7, iis 7.5, 64 bit).Se ha producido un error extraño al usar wcf para ejecutar la consulta en el servidor sql

Cuando mi servicio WCF intenta lanzando mi consulta que se ejecuta en un servidor SQL local, este es el error que reciben:

puertas de la memoria ha fallado la comprobación porque la memoria libre (43732992 bytes) es menos del 5% de la memoria total. Como resultado de , el servicio no estará disponible en para las solicitudes entrantes. Para resuelva esto, reduzca la carga en la máquina o ajuste el valor de minFreeMemoryPercentageToActivateService en el elemento de configuración serviceHostingEnvironment .

y ideas ??

Respuesta

13

Una cosa que podría intentar es cambiar su ruta de servicio 'mex' a absoluta si no lo es. Me funcionó una vez. Pero eso podría deberse a que el servicio se reinicia y libera algo de memoria.

respuesta de BrainSlug tiene un ejemplo de cómo hacer esto

119

En su web.config, en su configuración \ system.serviceModel \ serviceHostingEnvironment elemento, añadir un atributo minFreeMemoryPercentageToActivateService, y ponerlo a algo inferior a 5, I establecer el mío en 0, y este error se fue para mí.

ejemplo:

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

Precaución través MSDN: "Especificación de este atributo junto con la confianza parcial en el archivo web.config de un servicio WCF se traducirá en una SecurityException cuando se ejecuta el servicio."

+3

@ BrianSlugs83 Gracias - esto también funcionó para mí en un entorno de alojamiento compartido. –

+4

¿Es seguro reducir esto al 0%, como se recomienda en esta respuesta? ¿Hay alguna buena razón por la cual el valor predeterminado es 5%? – Matt

+0

Esa es una buena pregunta, y no puedo decir que sé la respuesta, pero me atrevería a decir que, mientras no se encuentre en un ambiente de confianza parcial, no veo por qué no lo sería, - en un aspecto, funciona alrededor de un error extraño - y en otro aspecto, si su servidor tiene 0% de memoria libre, ya tiene muchos otros problemas mucho peores. : -/ – BrainSlugs83

1

Encontré este problema cuando estaba ejecutando mi servicio WCF localmente (localhost). Paré el servicio. Cerré algunas aplicaciones para limpiar mi memoria RAM. y lo reinicié de nuevo. Comenzó normalmente como antes.
Respuesta de BrainSlug también funcionó. +1 por eso. :)
¡¡¡Salud !!

Cuestiones relacionadas