He estado escribiendo un servicio de larga duración en WCF. Estoy en el punto de pruebas de carga y estoy corriendo en un problema de que, cuando llegue a 5000 solicitudes pendientes, que comienza a recibir:Escribir el servicio WCF de larga duración
The HTTP service located at (my service) is too busy.
he implementado como un servicio WCF y el AsyncPattern El número de hilos de trabajo/IO consumidos sigue siendo muy bajo (como debería). El número de identificadores se ve bien, etc. Estoy pensando que estoy tropezando con uno de los límites de anti-DOS y simplemente no puedo encontrarlo. Estas son algunas de las cosas que he hecho:
He modificado el registro para que MaxConcurrentRequestsPerCPU no sea un problema. De hecho, el número de solicitudes en cola ASP.NET permanece 0.
He configurado el límite de servicio en la configuración web, por lo que no debería ser un problema. Las huellas WCF no muestran ninguna excepción debido a eso.
Estoy usando un enlace personalizado que no incluye ningún tipo de seguridad, etc. Todo lo que tiene es la codificación y el transporte (httpTransport).
He modificado el machine.config a la requestQueueLimit: He aquí el elemento processmodel de que:
<processModel enable="true"
timeout="Infinite"
idleTimeout="Infinite"
shutdownTimeout="0:00:05"
requestLimit="Infinite"
requestQueueLimit="15000"
restartQueueLimit="10"
memoryLimit="60"
webGarden="false"
cpuMask="0xffffffff"
userName="machine"
password="AutoGenerate"
logLevel="Errors"
clientConnectedCheck="0:00:05"
comAuthenticationLevel="Connect"
comImpersonationLevel="Impersonate"
responseRestartDeadlockInterval="00:09:00"
responseDeadlockInterval="00:03:00"
maxWorkerThreads="250"
maxIoThreads="250" />
Pero aún así termino con este límite (la máquina en cuestión puede manejarlo y el resto del sistema es asincrónico a un sistema de cola de mensajes).
¿Alguien puede pensar en algo más?
Soy IIS 7.5 en WindowsServer 2008R2. Asp.NET 3.5SP1.
Más información: Cuando aparece el error anterior, el contador de rendimiento ASP.Net v2.0.50727 "Solicitudes rechazadas" salta. Los documentos indican que esto sucede cuando la cola de solicitudes está llena. El contador de rendimiento de la cola de solicitudes está en 0 y nunca cambia.
Si arranco los Procesos máximos de trabajo, puedo exceder las 5K solicitudes concurrentes.
¿Cuál es el modelo de instancia que está utilizando? ¿Hay alguna posibilidad de que esté alcanzando un tipo de límite de sesión? Los ajustes del modo de instancia y concurrencia podrían ser otro lugar para mirar ... http://msdn.microsoft.com/en-us/magazine/cc163590.aspx –
Eso es un pensamiento. Cambié a InstanceContextMode = Single, ConcurrencyMode = Multiple en un punto. Había vuelto a investigar algo más. Sin embargo, creo que puede ser un problema de aceleración de ASP.NET. Lo intentaré sin embargo. Soy SessionMode = NotAllowed. –
Entonces No, cambiar el modo de concurrencia no ayudó. –