Tengo un servicio WCF (basicHttpBinding) alojado en II7 en Vista que espero manejar muchas solicitudes al mismo tiempo. Estoy intentando cargar la prueba del servicio moviendo 200 hilos en una aplicación de prueba y llamando al servicio WCF. He ejecutado esta aplicación de prueba en la misma máquina que el servidor y en muchas otras computadoras, y siempre obtengo el mismo resultado: no se utilizan más de 5 trabajadores. ¿Es esto un cuello de botella de WCF, HTTP o IIS?¿Por qué WCF limita las conexiones simultáneas a 5?
Respuesta
Esta es una función para prevenir el ataque de denegación de servicio. Fuera de la caja, WCF está diseñado para ser seguro. Compruebe el comportamiento del servicio, busque en msdn las configuraciones de maxConcurrentCalls y maxConcurrentSessions. Creo que el límite es 10, pero podría estar equivocado.
WCF es seguro por defecto. Esto significa que la configuración predeterminada limita lo que puede hacer con su servicio WCF para evitar cosas como ataques de denegación de servicio. Esto es ideal para servicios web orientados a Internet, pero a veces puede morderlo. Dependiendo de qué enlaces y comportamientos uses, podría ser una configuración en cualquiera de esos.
Here es una descripción general de estos ajustes: requerirá un poco de experimentación de su parte para determinar qué es exactamente lo que le está picando.
No, solo es la configuración de aceleración predeterminada en WCF. Se configura en el elemento serviceThrottling de un comportamiento en el archivo de configuración del servicio, que tiene un atributo maxConcurrentSessions. Valor predeterminado 5, pero puede configurarlo para lo que desee.
He aquí un buen artículo sobre WCF Gestión de Instancias de la revista de MSDN por Juval Lowy: http://msdn.microsoft.com/en-us/magazine/cc163590.aspx Emisión de junio de 2006 (en el caso si MSDN a descuartizar sus enlaces de nuevo).
Explica técnicas y configuraciones para administrar el ciclo de vida del servicio (la limitación es una de ellas) y muestra qué configuraciones aplicar para aumentar el número de conexiones concurrentes.
A partir de .NET 4.5, el número de conexiones por defecto es (número 100 de procesadores *) - ServiceThrottlingBehavior.MaxConcurrentSessions Property
- 1. Cómo limitar las conexiones simultáneas utilizadas por cURL
- 2. Conexiones TCP abiertas simultáneas en el servicio WCF
- 3. servidor push para millones de conexiones simultáneas
- 4. Node.js que lucha con muchas conexiones simultáneas
- 5. Socket.io: ¿Cuántas conexiones simultáneas puede manejar WebSockets?
- 6. nodejs: ¿Por qué Node.js puede manejar una gran cantidad de conexiones persistentes simultáneas?
- 7. Conexiones WCF que exceden las conexiones máximas cuando se utiliza el patrón asíncrono
- 8. ¿Cómo probar/simular conexiones simultáneas para un sitio web?
- 9. Múltiples llamadas simultáneas WCF desde un solo cliente al Servicio
- 10. ¿Cómo retener un millón de conexiones TCP simultáneas?
- 11. Conexiones simultáneas máximas en el acceso de ms
- 12. ¿Tiene demasiadas conexiones AJAX múltiples y simultáneas mal?
- 13. Conexiones simultáneas con Apache procedentes del mismo cliente
- 14. Gran cantidad de conexiones simultáneas en el ahorro
- 15. Múltiples conexiones de red simultáneas - servidor Telnet, Python
- 16. ¿Qué puede hacer que SqlClient reutilice las conexiones no válidas?
- 17. Aumentar el número de conexiones simultáneas en tomcat 7
- 18. ¿Por qué las conexiones persistentes no son compatibles con URLLib2?
- 19. Limitar el número de conexiones simultáneas en Apache 2
- 20. ¿Cuántas conexiones de red simultáneas (concurrentes) admite iphone?
- 21. ¿Por qué mi servidor web en golang no maneja las solicitudes simultáneas?
- 22. ¿Qué sucede cuando las conexiones a MongoDB no están cerradas?
- 23. ¿Por qué esta alerta 5?
- 24. Excepción en la declaración "using" con WCF no cerrando las conexiones correctamente. ¿Cómo se cierran las conexiones de los clientes de WCF o las que tienen excepciones?
- 25. ¿Qué limita el tamaño de página HTML a 8000 caracteres?
- 26. System.Net.HttpListener en Windows 7 Ultimate x64 Limitado a 1k Conexiones Simultáneas
- 27. ¿Las instancias de GAE están limitadas a 10 solicitudes simultáneas?
- 28. WCF ServiceHost ya cuenta con 5 comportamientos
- 29. ¿Por qué no es [1..5] == [1,2,3,4,5]?
- 30. ¿Cómo prevenir las ejecuciones simultáneas de javascript?
Ésta es la respuesta más cercana - si cambiaba maxConcurrentCalls el número de trabajadores WCF refleja activamente ese valor, a una punto. Cualquier cosa por encima de 10 en realidad no ejecuta más de mis trabajadores. Extrañamente, el valor predeterminado es 16 pero no puedo hacer que 16 llamadas estén activas al mismo tiempo. –
El límite predeterminado es 16 no 10. Btw 0x10 es 16 :) –
MS dice que el valor predeterminado para las sesiones es 10 en .NET 3.5, 100xprocesador en 4.0+. http://msdn.microsoft.com/en-us/library/system.servicemodel.description.servicethrottlingbehavior.maxconcurrentsessions(v=vs.90).aspx –